From: Mateusz Grzonka Date: Thu, 23 Mar 2023 11:50:00 +0000 (+0100) Subject: Create: Fix checking for container in update_metadata X-Git-Tag: mdadm-4.3~62 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ef6236da232e968dcf08b486178cd20d5ea97e2a;p=thirdparty%2Fmdadm.git Create: Fix checking for container in update_metadata 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 Signed-off-by: Jes Sorensen --- diff --git a/Create.c b/Create.c index bbe9e13d..0911bf92 100644 --- 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,