diff mbox series

[v2] Create: Fix checking for container in update_metadata

Message ID 20230323115000.25364-1-mateusz.grzonka@intel.com (mailing list archive)
State Mainlined, archived
Delegated to: Jes Sorensen
Headers show
Series [v2] Create: Fix checking for container in update_metadata | expand

Commit Message

Mateusz Grzonka March 23, 2023, 11:50 a.m. UTC
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>
---
 Create.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Mariusz Tkaczyk March 23, 2023, 3:29 p.m. UTC | #1
Hi Jes,
Please merge this to unblock our upstream testing :)

Thanks,
Mariusz

On Thu, 23 Mar 2023 12:50:00 +0100
Mateusz Grzonka <mateusz.grzonka@intel.com> wrote:

> 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>
> ---
>  Create.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> 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,
Jes Sorensen March 23, 2023, 4:44 p.m. UTC | #2
On 3/23/23 07:50, Mateusz Grzonka wrote:
> 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>
> ---
>  Create.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Applied!

Thanks,
Jes
diff mbox series

Patch

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,