]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - mdadm.c
Monitor/msg: Don't print error message if mdmon doesn't run
[thirdparty/mdadm.git] / mdadm.c
diff --git a/mdadm.c b/mdadm.c
index d80aab3612641d196d06a96c49e54b91a9cf8681..62d7ec34a17f5161c348fb16dd9a7de37141acc6 100644 (file)
--- a/mdadm.c
+++ b/mdadm.c
@@ -1542,8 +1542,13 @@ int main(int argc, char *argv[])
                                break;
                        }
 
-                       if (s.level != 1) {
-                               pr_err("--bitmap=clustered is currently supported with RAID mirror only\n");
+                       if (s.level != 1 && s.level != 10) {
+                               pr_err("--bitmap=clustered is currently supported with raid1/10 only\n");
+                               rv = 1;
+                               break;
+                       }
+                       if (s.level == 10 && !is_near_layout_10(s.layout)) {
+                               pr_err("only near layout is supported with clustered raid10\n");
                                rv = 1;
                                break;
                        }
@@ -1734,6 +1739,8 @@ int main(int argc, char *argv[])
                autodetect();
                break;
        }
+       if (mdfd > 0)
+               close(mdfd);
        exit(rv);
 }
 
@@ -1856,7 +1863,7 @@ static int misc_scan(char devmode, struct context *c)
                        if (devmode == 'D')
                                rv |= Detail(name, c);
                        else
-                               rv |= WaitClean(name, -1, c->verbose);
+                               rv |= WaitClean(name, c->verbose);
                        put_md_name(name);
                }
        }
@@ -1947,7 +1954,7 @@ static int misc_list(struct mddev_dev *devlist,
                        rv |= Wait(dv->devname);
                        continue;
                case Waitclean:
-                       rv |= WaitClean(dv->devname, -1, c->verbose);
+                       rv |= WaitClean(dv->devname, c->verbose);
                        continue;
                case KillSubarray:
                        rv |= Kill_subarray(dv->devname, c->subarray, c->verbose);