dm raid: fix discard support regression
authorHeinz Mauelshagen <heinzm@redhat.com>
Tue, 29 Nov 2016 21:37:30 +0000 (22:37 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Jan 2017 09:40:15 +0000 (10:40 +0100)
commit 11e2968478edc07a75ee1efb45011b3033c621c2 upstream.

Commit ecbfb9f118 ("dm raid: add raid level takeover support") moved the
configure_discard_support() call from raid_ctr() to raid_preresume().

Enabling/disabling discard _must_ happen during table load (through the
.ctr hook).  Fix this regression by moving the
configure_discard_support() call back to raid_ctr().

Fixes: ecbfb9f118 ("dm raid: add raid level takeover support")
Signed-off-by: Heinz Mauelshagen <heinzm@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/md/dm-raid.c

index 6d53810..af2d79b 100644 (file)
@@ -2994,6 +2994,9 @@ static int raid_ctr(struct dm_target *ti, unsigned int argc, char **argv)
                }
        }
 
+       /* Disable/enable discard support on raid set. */
+       configure_discard_support(rs);
+
        mddev_unlock(&rs->md);
        return 0;
 
@@ -3580,12 +3583,6 @@ static int raid_preresume(struct dm_target *ti)
        if (test_bit(RT_FLAG_UPDATE_SBS, &rs->runtime_flags))
                rs_update_sbs(rs);
 
-       /*
-        * Disable/enable discard support on raid set after any
-        * conversion, because devices can have been added
-        */
-       configure_discard_support(rs);
-
        /* Load the bitmap from disk unless raid0 */
        r = __load_dirty_region_bitmap(rs);
        if (r)