]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
FIX: Do not continue container reshape when mdmon is absent
authorAdam Kwolek <adam.kwolek@intel.com>
Mon, 7 Nov 2011 00:46:35 +0000 (11:46 +1100)
committerNeilBrown <neilb@suse.de>
Mon, 7 Nov 2011 00:46:35 +0000 (11:46 +1100)
When mdmon is absent metadata is not updated, and container_reshape()
can fall in to endless loop. This can cause user data corruption.

In case when mdmon is absent do not continue container reshape process.

Signed-off-by: Adam Kwolek <adam.kwolek@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Grow.c

diff --git a/Grow.c b/Grow.c
index e7fd7c42245759fad4663f52384850053c5efb95..184a973a8be8e10f5d2790eef2fff6ec6aed9e35 100644 (file)
--- a/Grow.c
+++ b/Grow.c
@@ -2562,6 +2562,12 @@ int reshape_container(char *container, char *devname,
                restart = 0;
                if (rv)
                        break;
+               rv = !mdmon_running(devname2devnum(container));
+               if (rv) {
+                       printf(Name ": Mdmon is not found. "
+                              "Cannot continue container reshape.\n");
+                       break;
+               }
        }
        if (!rv)
                unfreeze(st);