]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
FIX: Enable metadata updates for raid0
authorAdam Kwolek <adam.kwolek@intel.com>
Wed, 8 Jun 2011 07:13:26 +0000 (17:13 +1000)
committerNeilBrown <neilb@suse.de>
Wed, 8 Jun 2011 07:13:26 +0000 (17:13 +1000)
When raid0 is takeovered to degraded raid4, metadata updates has to be
applied via mdmon (raid4 has to be monitored).
It is not possible due to no update_tail pointer initialization
in supertype structure.

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 ad5ccc45c08688d11ee110bc819367eed332e9cf..c2c45aedf12cab3347d95522679d569eacf22dcb 100644 (file)
--- a/Grow.c
+++ b/Grow.c
@@ -1848,6 +1848,9 @@ static int reshape_array(char *container, int fd, char *devname,
                        if (!mdmon_running(st->container_dev))
                                start_mdmon(st->container_dev);
                        ping_monitor(container);
+                       if (mdmon_running(st->container_dev) &&
+                           st->update_tail == NULL)
+                               st->update_tail = &st->updates;
                }
        }
        /* ->reshape_super might have chosen some spares from the
@@ -2265,6 +2268,8 @@ started:
                                        ": %s: could not set level "
                                        "to %s\n", devname, c);
                }
+               if (info->new_level == 0)
+                       st->update_tail = NULL;
        }
 out:
        if (forked)