]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - config.c
test: assume recovery has completed if sync_completed says so.
[thirdparty/mdadm.git] / config.c
index a35807ccae3510e3620aa5a6426d4ef4ee2804f4..a882ed33fe9d26dfebbd470e926207f52cc311aa 100644 (file)
--- a/config.c
+++ b/config.c
@@ -167,10 +167,10 @@ struct mddev_dev *load_containers(void)
                    !is_subarray(&ent->metadata_version[9])) {
                        d = xmalloc(sizeof(*d));
                        memset(d, 0, sizeof(*d));
-                       me = map_by_devnm(&map, ent->dev);
+                       me = map_by_devnm(&map, ent->devnm);
                        if (me)
                                d->devname = xstrdup(me->path);
-                       else if (asprintf(&d->devname, "/dev/%s", ent->dev) < 0) {
+                       else if (asprintf(&d->devname, "/dev/%s", ent->devnm) < 0) {
                                free(d);
                                continue;
                        }
@@ -187,6 +187,7 @@ struct createinfo createinfo = {
        .autof = 2, /* by default, create devices with standard names */
        .symlinks = 1,
        .names = 0, /* By default, stick with numbered md devices. */
+       .bblist = 1, /* Use a bad block list by default */
 #ifdef DEBIAN
        .gid = 6, /* disk */
        .mode = 0660,
@@ -306,6 +307,10 @@ static void createline(char *line)
                        createinfo.names = 1;
                else if  (strncasecmp(w, "names=no", 11) == 0)
                        createinfo.names = 0;
+               else if  (strncasecmp(w, "bbl=no", 11) == 0)
+                       createinfo.bblist = 0;
+               else if  (strncasecmp(w, "bbl=yes", 11) == 0)
+                       createinfo.bblist = 1;
                else {
                        pr_err("unrecognised word on CREATE line: %s\n",
                                w);
@@ -391,14 +396,12 @@ void arrayline(char *line)
                                ) {
                                /* This is acceptable */;
                                if (mis.devname)
-                                       pr_err("only give one "
-                                               "device per ARRAY line: %s and %s\n",
+                                       pr_err("only give one device per ARRAY line: %s and %s\n",
                                                mis.devname, w);
                                else
                                        mis.devname = w;
                        }else {
-                               pr_err("%s is an invalid name for "
-                                       "an md device - ignored.\n", w);
+                               pr_err("%s is an invalid name for an md device - ignored.\n", w);
                        }
                } else if (strncasecmp(w, "uuid=", 5)==0 ) {
                        if (mis.uuid_set)
@@ -1116,8 +1119,7 @@ struct mddev_ident *conf_match(struct supertype *st,
                    !array_list->devices &&
                    array_list->super_minor == UnSet) {
                        if (verbose >= 2 && array_list->devname)
-                               pr_err("%s doesn't have any identifying"
-                                      " information.\n",
+                               pr_err("%s doesn't have any identifying information.\n",
                                       array_list->devname);
                        continue;
                }
@@ -1126,13 +1128,11 @@ struct mddev_ident *conf_match(struct supertype *st,
                if (match) {
                        if (verbose >= 0) {
                                if (match->devname && array_list->devname)
-                                       pr_err("we match both %s and %s - "
-                                              "cannot decide which to use.\n",
+                                       pr_err("we match both %s and %s - cannot decide which to use.\n",
                                               match->devname,
                                               array_list->devname);
                                else
-                                       pr_err("multiple lines in mdadm.conf"
-                                              " match\n");
+                                       pr_err("multiple lines in mdadm.conf match\n");
                        }
                        if (rvp)
                                *rvp = 2;
@@ -1169,8 +1169,7 @@ int conf_verify_devnames(struct mddev_ident *array_list)
                                        "%s have the same name: %s\n",
                                        nbuf, a1->devname);
                        } else
-                               pr_err("Device %s given twice"
-                                       " in config file\n", a1->devname);
+                               pr_err("Device %s given twice in config file\n", a1->devname);
                        return 1;
                }
        }