From: Ilya Dryomov Date: Wed, 7 Oct 2015 14:09:35 +0000 (+0200) Subject: rbd: set max_sectors explicitly X-Git-Tag: v4.3~57^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0d9fde4fc8f59a6bd316559d267a936b0737d05a;p=platform%2Fkernel%2Flinux-amlogic.git rbd: set max_sectors explicitly Commit 30e2bc08b2bb ("Revert "block: remove artifical max_hw_sectors cap"") restored a clamp on max_sectors. It's now 2560 sectors instead of 1024, but it's not good enough: we set max_hw_sectors to rbd object size because we don't want object sized I/Os to be split, and the default object size is 4M. So, set max_sectors to max_hw_sectors in rbd at queue init time. Signed-off-by: Ilya Dryomov Reviewed-by: Alex Elder --- diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index d93a037..2968b09 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c @@ -3760,6 +3760,7 @@ static int rbd_init_disk(struct rbd_device *rbd_dev) /* set io sizes to object size */ segment_size = rbd_obj_bytes(&rbd_dev->header); blk_queue_max_hw_sectors(q, segment_size / SECTOR_SIZE); + q->limits.max_sectors = queue_max_hw_sectors(q); blk_queue_max_segments(q, segment_size / SECTOR_SIZE); blk_queue_max_segment_size(q, segment_size); blk_queue_io_min(q, segment_size);