diff options
| -rw-r--r-- | drivers/md/raid5.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index c5439dce0295..baea94f0670a 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c | |||
| @@ -5529,6 +5529,10 @@ static int run(struct mddev *mddev) | |||
| 5529 | * discard data disk but write parity disk | 5529 | * discard data disk but write parity disk |
| 5530 | */ | 5530 | */ |
| 5531 | stripe = stripe * PAGE_SIZE; | 5531 | stripe = stripe * PAGE_SIZE; |
| 5532 | /* Round up to power of 2, as discard handling | ||
| 5533 | * currently assumes that */ | ||
| 5534 | while ((stripe-1) & stripe) | ||
| 5535 | stripe = (stripe | (stripe-1)) + 1; | ||
| 5532 | mddev->queue->limits.discard_alignment = stripe; | 5536 | mddev->queue->limits.discard_alignment = stripe; |
| 5533 | mddev->queue->limits.discard_granularity = stripe; | 5537 | mddev->queue->limits.discard_granularity = stripe; |
| 5534 | /* | 5538 | /* |
