Commit 4ac6875e authored by NeilBrown's avatar NeilBrown

md/raid5: round discard alignment up to power of 2.

blkdev_issue_discard currently assumes that the granularity
is a power of 2.  So in raid5, round the chosen number up to
avoid embarrassment.

Cc: Shaohua Li <shli@kernel.org>
Signed-off-by: default avatarNeilBrown <neilb@suse.de>
parent 5eff3c43
...@@ -5529,6 +5529,10 @@ static int run(struct mddev *mddev) ...@@ -5529,6 +5529,10 @@ static int run(struct mddev *mddev)
* discard data disk but write parity disk * discard data disk but write parity disk
*/ */
stripe = stripe * PAGE_SIZE; stripe = stripe * PAGE_SIZE;
/* Round up to power of 2, as discard handling
* currently assumes that */
while ((stripe-1) & stripe)
stripe = (stripe | (stripe-1)) + 1;
mddev->queue->limits.discard_alignment = stripe; mddev->queue->limits.discard_alignment = stripe;
mddev->queue->limits.discard_granularity = stripe; mddev->queue->limits.discard_granularity = stripe;
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment