]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/md/raid5.c
md/raid5: round discard alignment up to power of 2.
[karo-tx-linux.git] / drivers / md / raid5.c
index c5439dce0295078ecf82094af5474a649284ce61..baea94f0670a365324ea19345f4b540617cc81ca 100644 (file)
@@ -5529,6 +5529,10 @@ static int run(struct mddev *mddev)
                 * discard data disk but write parity disk
                 */
                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_granularity = stripe;
                /*