]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - Incremental.c
open_dev_excl: allow device to be read-only.
[thirdparty/mdadm.git] / Incremental.c
index 91359f4e93b453fedbf1575401dc0880c711135c..721806075b344c6951283a7bb2b0c535db5da85f 100644 (file)
@@ -438,7 +438,7 @@ int Incremental(char *devname, int verbose, int runstop,
        /* 7/ Is there enough devices to possibly start the array? */
        /* 7a/ if not, finish with success. */
        if (info.array.level == LEVEL_CONTAINER) {
-               char *devname = NULL;
+               int devnum;
                /* Try to assemble within the container */
                map_unlock(&map);
                sysfs_uevent(&info, "change");
@@ -448,7 +448,7 @@ int Incremental(char *devname, int verbose, int runstop,
                                chosen_name, info.array.working_disks);
                wait_for(chosen_name, mdfd);
                if (st->ss->external)
-                       devname = devnum2devname(fd2devnum(mdfd));
+                       devnum = fd2devnum(mdfd);
                close(mdfd);
                sysfs_free(sra);
                rv = Incremental(chosen_name, verbose, runstop,
@@ -460,10 +460,8 @@ int Incremental(char *devname, int verbose, int runstop,
                        rv = 0;
                /* after spare is added, ping monitor for external metadata
                 * so that it can eg. try to rebuild degraded array */
-               if (st->ss->external) {
-                       ping_monitor(devname);
-                       free(devname);
-               }
+               if (st->ss->external)
+                       ping_monitor_by_id(devnum);
                return rv;
        }
 
@@ -1555,7 +1553,7 @@ static int Incremental_container(struct supertype *st, char *devname,
                }
 
                assemble_container_content(st, mdfd, ra, runstop,
-                                          chosen_name, verbose);
+                                          chosen_name, verbose, NULL);
                close(mdfd);
        }