]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Create: minor fix when adding a journal device
authorNeilBrown <neilb@suse.com>
Thu, 14 Jan 2016 03:09:57 +0000 (14:09 +1100)
committerNeilBrown <neilb@suse.com>
Thu, 14 Jan 2016 03:13:17 +0000 (14:13 +1100)
The check of "is there a filesystem here" is still appropriate for a
journal device.

Also set active_disks correctly - even though it is ignored.

Signed-off-by: NeilBrown <neilb@suse.com>
Create.c

index 40f1b7ea81be67015570ad0c4eefb067c162a245..1e4a6ee065fde6a201bb1e356126cadf46ff711d 100644 (file)
--- a/Create.c
+++ b/Create.c
@@ -330,7 +330,7 @@ int Create(struct supertype *st, char *mddev,
                }
                close(dfd);
                info.array.working_disks++;
-               if (dnum < s->raiddisks)
+               if (dnum < s->raiddisks && dv->disposition != 'j')
                        info.array.active_disks++;
                if (st == NULL) {
                        struct createinfo *ci = conf_get_create_info();
@@ -400,7 +400,7 @@ int Create(struct supertype *st, char *mddev,
                }
 
                if (dv->disposition == 'j')
-                       continue;  /* skip write journal for size check */
+                       goto skip_size_check;  /* skip write journal for size check */
 
                freesize /= 2; /* convert to K */
                if (s->chunk && s->chunk != UnSet) {
@@ -434,6 +434,7 @@ int Create(struct supertype *st, char *mddev,
                        mindisc = dname;
                        minsize = freesize;
                }
+       skip_size_check:
                if (c->runstop != 1 || c->verbose >= 0) {
                        int fd = open(dname, O_RDONLY);
                        if (fd <0 ) {