Commit 5255a738 authored by Jes Sorensen's avatar Jes Sorensen Committed by Sasha Levin

md/raid5: Compare apples to apples (or sectors to sectors)

[ Upstream commit e7597e69 ]

'max_discard_sectors' is in sectors, while 'stripe' is in bytes.

This fixes the problem where DISCARD would get disabled on some larger
RAID5 configurations (6 or more drives in my testing), while it worked
as expected with smaller configurations.

Fixes: 620125f2 ("MD: raid5 trim support")
Cc: stable@vger.kernel.org v3.7+
Signed-off-by: default avatarJes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: default avatarShaohua Li <shli@fb.com>
Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
parent aa57ba13
...@@ -6942,8 +6942,8 @@ static int run(struct mddev *mddev) ...@@ -6942,8 +6942,8 @@ static int run(struct mddev *mddev)
} }
if (discard_supported && if (discard_supported &&
mddev->queue->limits.max_discard_sectors >= stripe && mddev->queue->limits.max_discard_sectors >= (stripe >> 9) &&
mddev->queue->limits.discard_granularity >= stripe) mddev->queue->limits.discard_granularity >= stripe)
queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, queue_flag_set_unlocked(QUEUE_FLAG_DISCARD,
mddev->queue); mddev->queue);
else else
......
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