]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - Monitor.c
imsm: FIX: indicate that metadada has to be written
[thirdparty/mdadm.git] / Monitor.c
index adc89d080a5bf7fd196953469b0c0d6a581760a9..3f211b5b4cd152916b2456e47d737f6e3d245024 100644 (file)
--- a/Monitor.c
+++ b/Monitor.c
@@ -291,7 +291,8 @@ static int check_one_sharer(int scan)
        struct stat buf;
        fp = fopen("/var/run/mdadm/autorebuild.pid", "r");
        if (fp) {
-               fscanf(fp, "%d", &pid);
+               if (fscanf(fp, "%d", &pid) != 1)
+                       pid = -1;
                sprintf(dir, "/proc/%d", pid);
                rv = stat(dir, &buf);
                if (rv != -1) {
@@ -778,7 +779,7 @@ static dev_t choose_spare(struct state *from, struct state *to,
                        if (from->spare_group)
                                pol_add(&pol, pol_domain,
                                        from->spare_group, NULL);
-                       if (domain_test(domlist, pol, to->metadata->ss->name))
+                       if (domain_test(domlist, pol, to->metadata->ss->name) == 1)
                            dev = from->devid[d];
                        dev_policy_free(pol);
                }
@@ -974,7 +975,7 @@ int Wait(char *dev)
                                if (is_subarray(&e->metadata_version[9]))
                                        ping_monitor(&e->metadata_version[9]);
                                else
-                                       ping_monitor(devnum2devname(devnum));
+                                       ping_monitor_by_id(devnum);
                        }
                        free_mdstat(ms);
                        return rv;