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: NeilBrown <neilb@suse.de>
This commit is contained in:
@@ -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;
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user