md: make sure manual changes to recovery checkpoint are saved.
authorNeilBrown <neilb@suse.de>
Thu, 11 Oct 2012 03:22:17 +0000 (14:22 +1100)
committerNeilBrown <neilb@suse.de>
Thu, 11 Oct 2012 03:22:17 +0000 (14:22 +1100)
If you make an array bigger but suppress resync of the new region with
  mdadm --grow /dev/mdX --size=max --assume-clean

then stop the array before anything is written to it, the effect of
the "--assume-clean" is lost and the array will resync the new space
when restarted.
So ensure that we update the metadata in the case.

Reported-by: Sebastian Riemer <sebastian.riemer@profitbricks.com>
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/md.c

index 200d0862335fa51f78f4825955caecae7d384e3c..8d93f867adbfc2af79eaa17fe7a0c06e9eb40b0c 100644 (file)
@@ -3782,6 +3782,8 @@ resync_start_store(struct mddev *mddev, const char *buf, size_t len)
                return -EINVAL;
 
        mddev->recovery_cp = n;
+       if (mddev->pers)
+               set_bit(MD_CHANGE_CLEAN, &mddev->flags);
        return len;
 }
 static struct md_sysfs_entry md_resync_start =