]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Incremental/container: don't create when we should just be opening.
authorNeilBrown <neilb@suse.de>
Tue, 10 Mar 2009 05:28:22 +0000 (16:28 +1100)
committerNeilBrown <neilb@suse.de>
Tue, 10 Mar 2009 05:28:22 +0000 (16:28 +1100)
When incr-assembling in a container, if the array already exists,
don't try to create it again, just open it.

Signed-off-by: NeilBrown <neilb@suse.de>
Incremental.c

index f8a5d326d8be27148d4e8aa698fb490fdef24f7b..99fc1bfcac611aceb21354ba3ae9b82d6985e0d3 100644 (file)
@@ -733,7 +733,10 @@ int Incremental_container(struct supertype *st, char *devname, int verbose,
 
                mp = map_by_uuid(&map, ra->uuid);
 
-               if (!mp) {
+               if (mp) {
+                       mdfd = open_dev(mp->devnum);
+                       strcpy(chosen_name, mp->path);
+               } else {
 
                        /* Check in mdadm.conf for devices == devname and
                         * member == ra->text_version after second slash.
@@ -772,13 +775,13 @@ int Incremental_container(struct supertype *st, char *devname, int verbose,
                                                array_list->member);
                                break;
                        }
-               }
 
-               mdfd = create_mddev(match ? match->devname : NULL,
-                                   ra->name,
-                                   autof,
-                                   trustworthy,
-                                   chosen_name);
+                       mdfd = create_mddev(match ? match->devname : NULL,
+                                           ra->name,
+                                           autof,
+                                           trustworthy,
+                                           chosen_name);
+               }
 
                if (mdfd < 0) {
                        fprintf(stderr, Name ": failed to open %s: %s.\n",