]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Create: Fix checking for container in update_metadata
authorMateusz Grzonka <mateusz.grzonka@intel.com>
Thu, 23 Mar 2023 11:50:00 +0000 (12:50 +0100)
committerJes Sorensen <jes@trained-monkey.org>
Thu, 23 Mar 2023 16:44:09 +0000 (12:44 -0400)
The commit 8a4ce2c05386 ("Create: Factor out add_disks() helpers")
introduced a regression that caused timeouts and udev failing to create
links.

Steps to reproduce the issue were as following:
$ mdadm -CR imsm -e imsm -n4 /dev/nvme[0-3]n1
$ mdadm -CR vol -l5 -n4 /dev/nvme[0-3]n1 --assume-clean

I found the check for container was wrong because negation was missing.

Fixes: 8a4ce2c05386 ("Create: Factor out add_disks() helpers")
Signed-off-by: Mateusz Grzonka <mateusz.grzonka@intel.com>
Signed-off-by: Jes Sorensen <jes@trained-monkey.org>
Create.c

index bbe9e13dc76dc0ab2255823816525be0ae7e64ef..0911bf92e5dc36a6586b8311f2e8b8fbd5076b8c 100644 (file)
--- a/Create.c
+++ b/Create.c
@@ -328,7 +328,7 @@ static int update_metadata(int mdfd, struct shape *s, struct supertype *st,
         * again returns container info.
         */
        st->ss->getinfo_super(st, &info_new, NULL);
-       if (st->ss->external && is_container(s->level) &&
+       if (st->ss->external && !is_container(s->level) &&
            !same_uuid(info_new.uuid, info->uuid, 0)) {
                map_update(map, fd2devnm(mdfd),
                           info_new.text_version,