From e969c8949e9b4b5a45345fc73e998480edcc42b7 Mon Sep 17 00:00:00 2001 From: Logan Gunthorpe Date: Thu, 16 Jun 2022 13:19:45 -0600 Subject: [PATCH] md/raid5: Increase restriction on max segments per request The block layer defaults the maximum segments to 128, which means requests tend to get split around the 512KB depending on how many pages can be merged. There's no such restriction in the raid5 code so increase the limit to USHRT_MAX so that larger requests can be sent as one. Signed-off-by: Logan Gunthorpe Signed-off-by: Song Liu --- drivers/md/raid5.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index e01f6211c947..184145b49b7c 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -8005,6 +8005,9 @@ static int raid5_run(struct mddev *mddev) */ blk_queue_max_hw_sectors(mddev->queue, RAID5_MAX_REQ_STRIPES << RAID5_STRIPE_SHIFT(conf)); + + /* No restrictions on the number of segments in the request */ + blk_queue_max_segments(mddev->queue, USHRT_MAX); } if (log_init(conf, journal_dev, raid5_has_ppl(conf))) -- 2.25.1