rbd.c (c6380ecd8e9bee7aba3d9a5a94b58168244c4a61) rbd.c (8b904b5b6b58b9a29dcf3f82d936d9e7fd69fda6)
1
2/*
3 rbd.c -- Export ceph rados objects as a Linux block device
4
5
6 based on drivers/block/osdblk.c:
7
8 Copyright 2009 Red Hat, Inc.

--- 4356 unchanged lines hidden (view full) ---

4365 goto out_disk;
4366
4367 q = blk_mq_init_queue(&rbd_dev->tag_set);
4368 if (IS_ERR(q)) {
4369 err = PTR_ERR(q);
4370 goto out_tag_set;
4371 }
4372
1
2/*
3 rbd.c -- Export ceph rados objects as a Linux block device
4
5
6 based on drivers/block/osdblk.c:
7
8 Copyright 2009 Red Hat, Inc.

--- 4356 unchanged lines hidden (view full) ---

4365 goto out_disk;
4366
4367 q = blk_mq_init_queue(&rbd_dev->tag_set);
4368 if (IS_ERR(q)) {
4369 err = PTR_ERR(q);
4370 goto out_tag_set;
4371 }
4372
4373 queue_flag_set_unlocked(QUEUE_FLAG_NONROT, q);
4373 blk_queue_flag_set(QUEUE_FLAG_NONROT, q);
4374 /* QUEUE_FLAG_ADD_RANDOM is off by default for blk-mq */
4375
4376 /* set io sizes to object size */
4377 segment_size = rbd_obj_bytes(&rbd_dev->header);
4378 blk_queue_max_hw_sectors(q, segment_size / SECTOR_SIZE);
4379 q->limits.max_sectors = queue_max_hw_sectors(q);
4380 blk_queue_max_segments(q, USHRT_MAX);
4381 blk_queue_max_segment_size(q, segment_size);
4382 blk_queue_io_min(q, segment_size);
4383 blk_queue_io_opt(q, segment_size);
4384
4385 /* enable the discard support */
4374 /* QUEUE_FLAG_ADD_RANDOM is off by default for blk-mq */
4375
4376 /* set io sizes to object size */
4377 segment_size = rbd_obj_bytes(&rbd_dev->header);
4378 blk_queue_max_hw_sectors(q, segment_size / SECTOR_SIZE);
4379 q->limits.max_sectors = queue_max_hw_sectors(q);
4380 blk_queue_max_segments(q, USHRT_MAX);
4381 blk_queue_max_segment_size(q, segment_size);
4382 blk_queue_io_min(q, segment_size);
4383 blk_queue_io_opt(q, segment_size);
4384
4385 /* enable the discard support */
4386 queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q);
4386 blk_queue_flag_set(QUEUE_FLAG_DISCARD, q);
4387 q->limits.discard_granularity = segment_size;
4388 blk_queue_max_discard_sectors(q, segment_size / SECTOR_SIZE);
4389 blk_queue_max_write_zeroes_sectors(q, segment_size / SECTOR_SIZE);
4390
4391 if (!ceph_test_opt(rbd_dev->rbd_client->client, NOCRC))
4392 q->backing_dev_info->capabilities |= BDI_CAP_STABLE_WRITES;
4393
4394 /*

--- 2087 unchanged lines hidden ---
4387 q->limits.discard_granularity = segment_size;
4388 blk_queue_max_discard_sectors(q, segment_size / SECTOR_SIZE);
4389 blk_queue_max_write_zeroes_sectors(q, segment_size / SECTOR_SIZE);
4390
4391 if (!ceph_test_opt(rbd_dev->rbd_client->client, NOCRC))
4392 q->backing_dev_info->capabilities |= BDI_CAP_STABLE_WRITES;
4393
4394 /*

--- 2087 unchanged lines hidden ---