Revert "dm raid: fix discard limits for raid1 and raid10"
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 Dec 2020 16:51:18 +0000 (17:51 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 Dec 2020 18:33:01 +0000 (19:33 +0100)
This reverts commit e0910c8e4f87bb9f767e61a778b0d9271c4dc512.

It causes problems :(

Reported-by: Dave Jones <davej@codemonkey.org.uk>
Reported-by: Mike Snitzer <snitzer@redhat.com>
Cc: Zdenek Kabelac <zkabelac@redhat.com>
Cc: Mikulas Patocka <mpatocka@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/md/dm-raid.c

index dc8568a..56b723d 100644 (file)
@@ -3730,14 +3730,12 @@ static void raid_io_hints(struct dm_target *ti, struct queue_limits *limits)
        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.
+        * RAID1 and RAID10 personalities require bio splitting,
+        * RAID0/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);
+       if (rs_is_raid1(rs) || rs_is_raid10(rs)) {
+               limits->discard_granularity = chunk_size_bytes;
+               limits->max_discard_sectors = rs->md.chunk_sectors;
        }
 }