From f68226136fd13ecc184e5b3cd01fab614150e10e Mon Sep 17 00:00:00 2001 From: Khalid Elmously Date: Wed, 9 Dec 2020 02:02:47 -0500 Subject: [PATCH] Revert "dm raid: remove unnecessary discard limits for raid10" BugLink: https://bugs.launchpad.net/bugs/1907262 This reverts commit 5977dcfaaa4ab675c0aad9529f330e25f21b3b08. Signed-off-by: Khalid Elmously --- drivers/md/dm-raid.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c index e966cb678506c..793348ae1e8cd 100644 --- a/drivers/md/dm-raid.c +++ b/drivers/md/dm-raid.c @@ -3742,6 +3742,17 @@ static void raid_io_hints(struct dm_target *ti, struct queue_limits *limits) blk_limits_io_min(limits, chunk_size_bytes); blk_limits_io_opt(limits, chunk_size_bytes * mddev_data_stripes(rs)); + + /* + * RAID10 personality requires bio splitting, + * RAID0/1/4/5/6 don't and process large discard bios properly. + */ + if (rs_is_raid10(rs)) { + limits->discard_granularity = max(chunk_size_bytes, + limits->discard_granularity); + limits->max_discard_sectors = min_not_zero(rs->md.chunk_sectors, + limits->max_discard_sectors); + } } static void raid_postsuspend(struct dm_target *ti)