]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Add 'quite' option and tidy up some tests.
authorNeil Brown <neilb@suse.de>
Mon, 15 Aug 2005 06:14:27 +0000 (06:14 +0000)
committerNeil Brown <neilb@suse.de>
Mon, 15 Aug 2005 06:14:27 +0000 (06:14 +0000)
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
36 files changed:
Assemble.c
Build.c
Create.c
Examine.c
Manage.c
ReadMe.c
mdadm.8
mdadm.c
mdadm.h
super0.c
test
tests/00linear
tests/00raid0
tests/00raid1
tests/00raid10
tests/00raid4
tests/00raid5
tests/00raid6
tests/01r1fail
tests/01r5fail
tests/02r1add
tests/02r1grow
tests/02r5grow
tests/02r6grow
tests/03r0assem
tests/03r5assem
tests/04r0update
tests/04r1update
tests/05r1-bitmapfile
tests/05r1-grow-external
tests/05r1-internalbitmap
tests/05r1-n3-bitmapfile
tests/06name
tests/06r5swap
tests/06wrmostly
tests/testdev

index 449073f1cbbf4cb120df7976bd0a7d028f85accf..7ef1cd4bf8ad57e659d3548011ea644e43db3d65 100644 (file)
@@ -167,7 +167,7 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
 
        if (!st && ident->st) st = ident->st;
 
-       if (verbose)
+       if (verbose>0)
            fprintf(stderr, Name ": looking for devices for %s\n",
                    mddev);
 
@@ -182,7 +182,7 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
 
                if (ident->devices &&
                    !match_oneof(ident->devices, devname)) {
-                       if (inargv || verbose)
+                       if (inargv || verbose > 0)
                                fprintf(stderr, Name ": %s is not one of %s\n", devname, ident->devices);
                        continue;
                }
@@ -194,7 +194,7 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
                
                dfd = open(devname, O_RDONLY|O_EXCL, 0);
                if (dfd < 0) {
-                       if (inargv || verbose)
+                       if (inargv || verbose > 0)
                                fprintf(stderr, Name ": cannot open device %s: %s\n",
                                        devname, strerror(errno));
                } else if (fstat(dfd, &stb)< 0) {
@@ -207,10 +207,10 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
                                devname);
                        close(dfd);
                } else if (!tst && (tst = guess_super(dfd)) == NULL) {
-                       if (inargv || verbose)
+                       if (inargv || verbose > 0)
                                fprintf(stderr, Name ": no recogniseable superblock\n");
                } else if (tst->ss->load_super(tst,dfd, &super, NULL)) {
-                       if (inargv || verbose)
+                       if (inargv || verbose > 0)
                                fprintf( stderr, Name ": no RAID superblock on %s\n",
                                         devname);
                        close(dfd);
@@ -221,35 +221,35 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
 
                if (ident->uuid_set &&
                    (!super || same_uuid(info.uuid, ident->uuid, tst->ss->swapuuid)==0)) {
-                       if (inargv || verbose)
+                       if (inargv || verbose > 0)
                                fprintf(stderr, Name ": %s has wrong uuid.\n",
                                        devname);
                        continue;
                }
                if (ident->name[0] &&
                    (!super || strncmp(ident2.name, ident->name, 32)!=0)) {
-                       if (inargv || verbose)
+                       if (inargv || verbose > 0)
                                fprintf(stderr, Name ": %s has wrong name.\n",
                                        devname);
                        continue;
                }
                if (ident->super_minor != UnSet &&
                    (!super || ident->super_minor != info.array.md_minor)) {
-                       if (inargv || verbose)
+                       if (inargv || verbose > 0)
                                fprintf(stderr, Name ": %s has wrong super-minor.\n",
                                        devname);
                        continue;
                }
                if (ident->level != UnSet &&
                    (!super|| ident->level != info.array.level)) {
-                       if (inargv || verbose)
+                       if (inargv || verbose > 0)
                                fprintf(stderr, Name ": %s has wrong raid level.\n",
                                        devname);
                        continue;
                }
                if (ident->raid_disks != UnSet &&
                    (!super || ident->raid_disks!= info.array.raid_disks)) {
-                       if (inargv || verbose)
+                       if (inargv || verbose > 0)
                                fprintf(stderr, Name ": %s requires wrong number of drives.\n",
                                        devname);
                        continue;
@@ -295,7 +295,7 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
                                close(dfd);
                }
 
-               if (verbose)
+               if (verbose > 0)
                        fprintf(stderr, Name ": %s is identified as a member of %s, slot %d.\n",
                                devname, mddev, info.disk.raid_disk);
                devices[devcnt].devname = devname;
@@ -399,10 +399,11 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
                }
                if (chosen_drive < 0)
                        break;
-               fprintf(stderr, Name ": forcing event count in %s(%d) from %d upto %d\n",
-                       devices[chosen_drive].devname, devices[chosen_drive].raid_disk,
-                       (int)(devices[chosen_drive].events),
-                       (int)(devices[most_recent].events));
+               if (verbose >= 0)
+                       fprintf(stderr, Name ": forcing event count in %s(%d) from %d upto %d\n",
+                               devices[chosen_drive].devname, devices[chosen_drive].raid_disk,
+                               (int)(devices[chosen_drive].events),
+                               (int)(devices[most_recent].events));
                fd = open(devices[chosen_drive].devname, O_RDWR|O_EXCL);
                if (fd < 0) {
                        fprintf(stderr, Name ": Couldn't open %s for write - not updating\n",
@@ -488,16 +489,18 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
                info.disk.state = desired_state;
 
                if (devices[j].uptodate &&
-                   st->ss->update_super(&info, super, "assemble", NULL, 0)) {
+                   st->ss->update_super(&info, super, "assemble", NULL, verbose)) {
                        if (force) {
-                               fprintf(stderr, Name ": "
-                                       "clearing FAULTY flag for device %d in %s for %s\n",
-                                       j, mddev, devices[j].devname);
+                               if (verbose >= 0)
+                                       fprintf(stderr, Name ": "
+                                               "clearing FAULTY flag for device %d in %s for %s\n",
+                                               j, mddev, devices[j].devname);
                                change = 1;
                        } else {
-                               fprintf(stderr, Name ": "
-                                       "device %d in %s has wrong state in superblock, but %s seems ok\n",
-                                       i, mddev, devices[j].devname);
+                               if (verbose >= -1)
+                                       fprintf(stderr, Name ": "
+                                               "device %d in %s has wrong state in superblock, but %s seems ok\n",
+                                               i, mddev, devices[j].devname);
                        }
                }
 #if 0
@@ -511,7 +514,7 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
        if (force && okcnt == info.array.raid_disks-1) {
                /* FIXME check event count */
                change += st->ss->update_super(&info, super, "force", 
-                                       devices[chosen_drive].devname, 0);
+                                       devices[chosen_drive].devname, verbose);
        }
 
        if (change) {
@@ -584,10 +587,10 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
                                                okcnt--;
                                        else
                                                sparecnt--;
-                               } else if (verbose)
+                               } else if (verbose > 0)
                                        fprintf(stderr, Name ": added %s to %s as %d\n",
                                                devices[j].devname, mddev, devices[j].raid_disk);
-                       } else if (verbose && i < info.array.raid_disks)
+                       } else if (verbose > 0 && i < info.array.raid_disks)
                                fprintf(stderr, Name ": no uptodate device for slot %d of %s\n",
                                        i, mddev);
                }
@@ -598,13 +601,15 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
                       (okcnt >= req_cnt || start_partial_ok)
                             ))) {
                        if (ioctl(mdfd, RUN_ARRAY, NULL)==0) {
-                               fprintf(stderr, Name ": %s has been started with %d drive%s",
-                                       mddev, okcnt, okcnt==1?"":"s");
-                               if (okcnt < info.array.raid_disks) 
-                                       fprintf(stderr, " (out of %d)", info.array.raid_disks);
-                               if (sparecnt)
-                                       fprintf(stderr, " and %d spare%s", sparecnt, sparecnt==1?"":"s");
-                               fprintf(stderr, ".\n");
+                               if (verbose >= 0) {
+                                       fprintf(stderr, Name ": %s has been started with %d drive%s",
+                                               mddev, okcnt, okcnt==1?"":"s");
+                                       if (okcnt < info.array.raid_disks) 
+                                               fprintf(stderr, " (out of %d)", info.array.raid_disks);
+                                       if (sparecnt)
+                                               fprintf(stderr, " and %d spare%s", sparecnt, sparecnt==1?"":"s");
+                                       fprintf(stderr, ".\n");
+                               }
                                return 0;
                        }
                        fprintf(stderr, Name ": failed to RUN_ARRAY %s: %s\n",
@@ -616,17 +621,19 @@ int Assemble(struct supertype *st, char *mddev, int mdfd,
                                mddev, okcnt, okcnt==1?"":"s");
                        return 0;
                }
-               fprintf(stderr, Name ": %s assembled from %d drive%s", mddev, okcnt, okcnt==1?"":"s");
-               if (sparecnt)
-                       fprintf(stderr, " and %d spare%s", sparecnt, sparecnt==1?"":"s");
-               if (!enough(info.array.level, info.array.raid_disks, okcnt))
-                       fprintf(stderr, " - not enough to start the array.\n");
-               else {
-                       if (req_cnt == info.array.raid_disks)
-                               fprintf(stderr, " - need all %d to start it", req_cnt);
-                       else
-                               fprintf(stderr, " - need %d of %d to start", req_cnt, info.array.raid_disks);
-                       fprintf(stderr, " (use --run to insist).\n");
+               if (verbose >= 0) {
+                       fprintf(stderr, Name ": %s assembled from %d drive%s", mddev, okcnt, okcnt==1?"":"s");
+                       if (sparecnt)
+                               fprintf(stderr, " and %d spare%s", sparecnt, sparecnt==1?"":"s");
+                       if (!enough(info.array.level, info.array.raid_disks, okcnt))
+                               fprintf(stderr, " - not enough to start the array.\n");
+                       else {
+                               if (req_cnt == info.array.raid_disks)
+                                       fprintf(stderr, " - need all %d to start it", req_cnt);
+                               else
+                                       fprintf(stderr, " - need %d of %d to start", req_cnt, info.array.raid_disks);
+                               fprintf(stderr, " (use --run to insist).\n");
+                       }
                }
                return 1;
        } else {
diff --git a/Build.c b/Build.c
index 6489d8451ce6d940edf1fd2942089055ae49768e..7eb1eed2ad74cf3898efc132c4d3b9fed6644fb9 100644 (file)
--- a/Build.c
+++ b/Build.c
@@ -36,7 +36,7 @@
 int Build(char *mddev, int mdfd, int chunk, int level, int layout,
          int raiddisks,
          mddev_dev_t devlist, int assume_clean,
-         char *bitmap_file, int bitmap_chunk, int write_behind, int delay)
+         char *bitmap_file, int bitmap_chunk, int write_behind, int delay, int verbose)
 {
        /* Build a linear or raid0 arrays without superblocks
         * We cannot really do any checks, we just do it.
@@ -51,7 +51,6 @@ int Build(char *mddev, int mdfd, int chunk, int level, int layout,
         * SET_ARRAY_INFO,  ADD_NEW_DISK, RUN_ARRAY
         *
         */
-       int verbose = 0;
        int i;
        int vers;
        struct stat stb;
@@ -92,21 +91,21 @@ int Build(char *mddev, int mdfd, int chunk, int level, int layout,
                        break;
                case 10:
                        layout = 0x102; /* near=2, far=1 */
-                       if (verbose)
+                       if (verbose > 0)
                                fprintf(stderr,
                                        Name ": layout defaults to n1\n");
                        break;
                case 5:
                case 6:
                        layout = map_name(r5layout, "default");
-                       if (verbose)
+                       if (verbose > 0)
                                fprintf(stderr,
                                        Name ": layout defaults to %s\n", map_num(r5layout, layout));
                        break;
                case LEVEL_FAULTY:
                        layout = map_name(faultylayout, "default");
 
-                       if (verbose)
+                       if (verbose > 0)
                                fprintf(stderr,
                                        Name ": layout defaults to %s\n", map_num(faultylayout, layout));
                        break;
@@ -233,8 +232,9 @@ int Build(char *mddev, int mdfd, int chunk, int level, int layout,
                        goto abort;
                }
        }
-       fprintf(stderr, Name ": array %s built and started.\n",
-               mddev);
+       if (verbose >= 0)
+               fprintf(stderr, Name ": array %s built and started.\n",
+                       mddev);
        return 0;
 
  abort:
index 0d7be8f0831cb6de0b9d2595503db011d6b08515..d1e1088c843c46aba445671199100a0ea7f466f5 100644 (file)
--- a/Create.c
+++ b/Create.c
@@ -119,21 +119,21 @@ int Create(struct supertype *st, char *mddev, int mdfd,
                        break;
                case 10:
                        layout = 0x102; /* near=2, far=1 */
-                       if (verbose)
+                       if (verbose > 0)
                                fprintf(stderr,
                                        Name ": layout defaults to n1\n");
                        break;
                case 5:
                case 6:
                        layout = map_name(r5layout, "default");
-                       if (verbose)
+                       if (verbose > 0)
                                fprintf(stderr,
                                        Name ": layout defaults to %s\n", map_num(r5layout, layout));
                        break;
                case LEVEL_FAULTY:
                        layout = map_name(faultylayout, "default");
 
-                       if (verbose)
+                       if (verbose > 0)
                                fprintf(stderr,
                                        Name ": layout defaults to %s\n", map_num(faultylayout, layout));
                        break;
@@ -156,14 +156,14 @@ int Create(struct supertype *st, char *mddev, int mdfd,
        case -1: /* linear */
                if (chunk == 0) {
                        chunk = 64;
-                       if (verbose)
+                       if (verbose > 0)
                                fprintf(stderr, Name ": chunk size defaults to 64K\n");
                }
                break;
        default: /* raid1, multipath */
                if (chunk) {
                        chunk = 0;
-                       if (verbose)
+                       if (verbose > 0)
                                fprintf(stderr, Name ": chunk size ignored for this level\n");
                }
                break;
@@ -236,9 +236,11 @@ int Create(struct supertype *st, char *mddev, int mdfd,
                        mindisc = dname;
                        minsize = freesize;
                }
-               warn |= check_ext2(fd, dname);
-               warn |= check_reiser(fd, dname);
-               warn |= check_raid(fd, dname);
+               if (runstop != 1 || verbose >= 0) {
+                       warn |= check_ext2(fd, dname);
+                       warn |= check_reiser(fd, dname);
+                       warn |= check_raid(fd, dname);
+               }
                close(fd);
        }
        if (fail) {
@@ -257,13 +259,14 @@ int Create(struct supertype *st, char *mddev, int mdfd,
                                return 1;
                        }
                        size = minsize;
-                       if (verbose)
+                       if (verbose > 0)
                                fprintf(stderr, Name ": size set to %luK\n", size);
                }
        }
        if (level > 0 && ((maxsize-size)*100 > maxsize)) {
-               fprintf(stderr, Name ": largest drive (%s) exceed size (%luK) by more than 1%%\n",
-                       maxdisc, size);
+               if (runstop != 1 || verbose >= 0)
+                       fprintf(stderr, Name ": largest drive (%s) exceed size (%luK) by more than 1%%\n",
+                               maxdisc, size);
                warn = 1;
        }
 
@@ -274,7 +277,7 @@ int Create(struct supertype *st, char *mddev, int mdfd,
                                return 1;
                        }
                } else {
-                       if (verbose)
+                       if (verbose > 0)
                                fprintf(stderr, Name ": creation continuing despite oddities due to --run\n");
                }
        }
@@ -473,7 +476,8 @@ int Create(struct supertype *st, char *mddev, int mdfd,
                        Manage_runstop(mddev, mdfd, -1, 0);
                        return 1;
                }
-               fprintf(stderr, Name ": array %s started.\n", mddev);
+               if (verbose >= 0)
+                       fprintf(stderr, Name ": array %s started.\n", mddev);
        } else {
                fprintf(stderr, Name ": not starting array - not enough devices.\n");
        }
index a5151ec0a6d73eb8855f1d2d6f00f818974e4368..33fa1e5fccc7d70b50712cd94ffcc8b9bd8abc68 100644 (file)
--- a/Examine.c
+++ b/Examine.c
@@ -92,7 +92,7 @@ int Examine(mddev_dev_t devlist, int brief, int scan, int SparcAdjust, struct su
                if (err) rv =1;
 
                if (SparcAdjust)
-                       st->ss->update_super(NULL, super, "sparc2.2", devlist->devname, 0);
+                       st->ss->update_super(NULL, super, "sparc2.2", devlist->devname,  0);
                /* Ok, its good enough to try, though the checksum could be wrong */
                if (brief) {
                        struct array *ap;
index a91e467c8ff7916ba321d366042b77d3172b6973..8c2da3b99b3253dbc838e77912da4db7b0e3e903 100644 (file)
--- a/Manage.c
+++ b/Manage.c
@@ -154,7 +154,7 @@ int Manage_reconfig(char *devname, int fd, int layout)
 }
 
 int Manage_subdevs(char *devname, int fd,
-                  mddev_dev_t devlist)
+                  mddev_dev_t devlist, int verbose)
 {
        /* do something to each dev.
         * devmode can be
@@ -208,8 +208,9 @@ int Manage_subdevs(char *devname, int fd,
                            md_get_version(fd)%100 < 2) {
                                if (ioctl(fd, HOT_ADD_DISK,
                                          (unsigned long)stb.st_rdev)==0) {
-                                       fprintf(stderr, Name ": hot added %s\n",
-                                               dv->devname);
+                                       if (verbose >= 0)
+                                               fprintf(stderr, Name ": hot added %s\n",
+                                                       dv->devname);
                                        continue;
                                }
 
@@ -276,7 +277,8 @@ int Manage_subdevs(char *devname, int fd,
                                        dv->devname, j, strerror(errno));
                                return 1;
                        }
-                       fprintf(stderr, Name ": added %s\n", dv->devname);
+                       if (verbose >= 0)
+                               fprintf(stderr, Name ": added %s\n", dv->devname);
                        break;
 
                case 'r':
@@ -287,7 +289,8 @@ int Manage_subdevs(char *devname, int fd,
                                        dv->devname, strerror(errno));
                                return 1;
                        }
-                       fprintf(stderr, Name ": hot removed %s\n", dv->devname);
+                       if (verbose >= 0)
+                               fprintf(stderr, Name ": hot removed %s\n", dv->devname);
                        break;
 
                case 'f': /* set faulty */
@@ -297,8 +300,9 @@ int Manage_subdevs(char *devname, int fd,
                                        dv->devname, strerror(errno));
                                return 1;
                        }
-                       fprintf(stderr, Name ": set %s faulty in %s\n",
-                               dv->devname, devname);
+                       if (verbose >= 0)
+                               fprintf(stderr, Name ": set %s faulty in %s\n",
+                                       dv->devname, devname);
                        break;
                }
        }
index 91fe279116b00f72a996b96df1d50c673f270156..2a41854cc3837aad4d14977c2f41dcd82ffef431 100644 (file)
--- a/ReadMe.c
+++ b/ReadMe.c
@@ -91,7 +91,7 @@ char Version[] = Name " - v2.0-devel-3 - DEVELOPMENT VERSION NOT FOR REGULAR USE
  *     At the time if writing, there is only minimal support.
  */
 
-char short_options[]="-ABCDEFGQhVXvb::c:i:l:p:m:n:x:u:c:d:z:U:sa::rfRSow1te:";
+char short_options[]="-ABCDEFGQhVXvqb::c:i:l:p:m:n:x:u:c:d:z:U:sa::rfRSow1te:";
 struct option long_options[] = {
     {"manage",    0, 0, '@'},
     {"misc",      0, 0, '#'},
@@ -114,6 +114,7 @@ struct option long_options[] = {
     {"help-options",0,0,'h'},
     {"version",          0, 0, 'V'},
     {"verbose",   0, 0, 'v'},
+    {"quiet",    0, 0, 'q'},
 
     /* For create or build: */
     {"chunk",    1, 0, 'c'},
@@ -205,6 +206,7 @@ char OptionHelp[] =
 "  --help-options     : This help message\n"
 "  --version     -V   : Print version information for mdadm\n"
 "  --verbose     -v   : Be more verbose about what is happening\n"
+"  --quiet       -q   : Don't print un-necessary messages\n"
 "  --brief       -b   : Be less verbose, more brief\n"
 "  --force       -f   : Override normal checks and be more forceful\n"
 "\n"
diff --git a/mdadm.8 b/mdadm.8
index 75fcbeb9653c2759ed8aed5c2a7b3e96cb0c3c5c..9f0dd153d47733345c8e48ff7b157f750d318f4c 100644 (file)
--- a/mdadm.8
+++ b/mdadm.8
@@ -192,6 +192,12 @@ This currently only affects
 and
 .BR "--examine --scan" .
 
+.TP
+.BR -q ", " --quiet
+Avoid printing purely informative messages.  With this,
+.B mdadm
+will be silent unless there is something really important to report.
+
 .TP
 .BR -b ", " --brief
 Be less verbose.  This is used with
diff --git a/mdadm.c b/mdadm.c
index de1f95a93f1c403b77b0902ba43b995d8feafb8e..a24778ea74590f3ae3a88b2e34f3a01bb4d7aa7c 100644 (file)
--- a/mdadm.c
+++ b/mdadm.c
@@ -70,6 +70,7 @@ int main(int argc, char *argv[])
        mddev_dev_t dv;
        int devs_found = 0;
        int verbose = 0;
+       int quiet = 0;
        int brief = 0;
        int force = 0;
        int test = 0;
@@ -114,7 +115,7 @@ int main(int argc, char *argv[])
                                short_options, long_options,
                                &option_index)) != -1) {
                int newmode = mode;
-               /* firstly, so mode-independant options */
+               /* firstly, some mode-independant options */
                switch(opt) {
                case 'h':
                        help_text = Help;
@@ -141,6 +142,9 @@ int main(int argc, char *argv[])
                case 'v': verbose++;
                        continue;
 
+               case 'q': quiet++;
+                       continue;
+
                case 'b':
                        if (mode == ASSEMBLE || mode == BUILD || mode == CREATE || mode == GROW)
                                break; /* b means bitmap */
@@ -860,7 +864,7 @@ int main(int argc, char *argv[])
                        rv = Manage_ro(devlist->devname, mdfd, readonly);
                if (!rv && devs_found>1)
                        rv = Manage_subdevs(devlist->devname, mdfd,
-                                           devlist->next);
+                                           devlist->next, verbose-quiet);
                if (!rv && readonly < 0)
                        rv = Manage_ro(devlist->devname, mdfd, readonly);
                if (!rv && runstop)
@@ -883,14 +887,14 @@ int main(int argc, char *argv[])
                                else {
                                        rv |= Assemble(ss, devlist->devname, mdfd, array_ident, configfile,
                                                       NULL,
-                                                      readonly, runstop, update, verbose, force);
+                                                      readonly, runstop, update, verbose-quiet, force);
                                        close(mdfd);
                                }
                        }
                } else if (!scan)
                        rv = Assemble(ss, devlist->devname, mdfd, &ident, configfile,
                                      devlist->next,
-                                     readonly, runstop, update, verbose, force);
+                                     readonly, runstop, update, verbose-quiet, force);
                else if (devs_found>0) {
                        if (update && devs_found > 1) {
                                fprintf(stderr, Name ": can only update a single array at a time\n");
@@ -912,7 +916,7 @@ int main(int argc, char *argv[])
                                }
                                rv |= Assemble(ss, dv->devname, mdfd, array_ident, configfile,
                                               NULL,
-                                              readonly, runstop, update, verbose, force);
+                                              readonly, runstop, update, verbose-quiet, force);
                                close(mdfd);
                        }
                } else {
@@ -936,7 +940,7 @@ int main(int argc, char *argv[])
                                                rv |= Assemble(ss, array_list->devname, mdfd,
                                                               array_list, configfile,
                                                               NULL,
-                                                              readonly, runstop, NULL, verbose, force);
+                                                              readonly, runstop, NULL, verbose-quiet, force);
                                        close(mdfd);
                                }
                }
@@ -969,7 +973,7 @@ int main(int argc, char *argv[])
                }
                rv = Build(devlist->devname, mdfd, chunk, level, layout,
                           raiddisks, devlist->next, assume_clean,
-                          bitmap_file, bitmap_chunk, write_behind, delay);
+                          bitmap_file, bitmap_chunk, write_behind, delay, verbose-quiet);
                break;
        case CREATE:
                if (delay == 0) delay = DEFAULT_BITMAP_DELAY;
@@ -989,7 +993,7 @@ int main(int argc, char *argv[])
 
                rv = Create(ss, devlist->devname, mdfd, chunk, level, layout, size<0 ? 0 : size,
                            raiddisks, sparedisks, ident.name,
-                           devs_found-1, devlist->next, runstop, verbose, force,
+                           devs_found-1, devlist->next, runstop, verbose-quiet, force,
                            bitmap_file, bitmap_chunk, write_behind, delay);
                break;
        case MISC:
diff --git a/mdadm.h b/mdadm.h
index 0457d9ddde7cf175b6237095ba4ca8635ea1c664..015d4707cce7e3e7a716eca9d4c84b4dbb45dce5 100644 (file)
--- a/mdadm.h
+++ b/mdadm.h
@@ -224,7 +224,7 @@ extern int Manage_runstop(char *devname, int fd, int runstop, int quiet);
 extern int Manage_resize(char *devname, int fd, long long size, int raid_disks);
 extern int Manage_reconfig(char *devname, int fd, int layout);
 extern int Manage_subdevs(char *devname, int fd,
-                         mddev_dev_t devlist);
+                         mddev_dev_t devlist, int verbose);
 extern int Grow_Add_device(char *devname, int fd, char *newdev);
 extern int Grow_addbitmap(char *devname, int fd, char *file, int chunk, int delay, int write_behind);
 
@@ -240,7 +240,7 @@ extern int Assemble(struct supertype *st, char *mddev, int mdfd,
 extern int Build(char *mddev, int mdfd, int chunk, int level, int layout,
                 int raiddisks,
                 mddev_dev_t devlist, int assume_clean,
-                char *bitmap_file, int bitmap_chunk, int write_behind, int delay);
+                char *bitmap_file, int bitmap_chunk, int write_behind, int delay, int verbose);
 
 
 extern int Create(struct supertype *st, char *mddev, int mdfd,
index f355fa731ab02a09a59f7e9e3c2467ccf560c609..b028cfff265550fb1f44b426c74f2ee0ab3228e4 100644 (file)
--- a/super0.c
+++ b/super0.c
@@ -271,12 +271,13 @@ static int update_super0(struct mdinfo *info, void *sbv, char *update, char *dev
                memcpy(sb32+MD_SB_GENERIC_CONSTANT_WORDS+7,
                       sb32+MD_SB_GENERIC_CONSTANT_WORDS+7+1,
                       (MD_SB_WORDS - (MD_SB_GENERIC_CONSTANT_WORDS+7+1))*4);
-               fprintf (stderr, Name ": adjusting superblock of %s for 2.2/sparc compatability.\n",
-                        devname);
+               if (verbose >= 0)
+                       fprintf (stderr, Name ": adjusting superblock of %s for 2.2/sparc compatability.\n",
+                                devname);
        }
        if (strcmp(update, "super-minor") ==0) {
                sb->md_minor = info->array.md_minor;
-               if (verbose)
+               if (verbose > 0)
                        fprintf(stderr, Name ": updating superblock of %s with minor number %d\n",
                                devname, info->array.md_minor);
        }
diff --git a/test b/test
index 3e7990925e0c0df29816ded9dbefaa8261ca2f16..5008c494c3e74f4bdb16c0077f3ca2a88133ec8c 100644 (file)
--- a/test
+++ b/test
@@ -14,7 +14,6 @@ fi
 
 dir=`pwd`
 mdadm=$dir/mdadm
-export mdadm
 if [ \! -x $mdadm ]
 then
    echo >&2 "test: $mdadm isn't usable."
@@ -23,16 +22,14 @@ fi
 export check="sh $dir/tests/check"
 
 # assume md0, md1, md2 exist in /dev
-export md0=/dev/md0 md1=/dev/md1 md2=/dev/md2
+md0=/dev/md0 md1=/dev/md1 md2=/dev/md2
 
 # We test mdadm on loop-back block devices.
 # dir for storing files should be settable by command line maybe
 targetdir=/tmp
-export targetdir dir
 size=20000
 mdsize0=19904
 mdsize1=19992
-export size mdsize0 mdsize1
 
 cleanup() {
        $mdadm -Ss
@@ -48,16 +45,78 @@ for d in 0 1 2 3 4 5 6 7
 do
    [ -f $targetdir/mdtest$d ] || dd if=/dev/zero of=$targetdir/mdtest$d count=$size bs=1K > /dev/null 2>&1
    losetup /dev/loop$d $targetdir/mdtest$d
-   export dev$d=/dev/loop$d
+   eval dev$d=/dev/loop$d
    eval devlist=\"\$devlist \$dev$d\"
 done
-export devlist
+
+# mdadm always adds --quiet, and we want to see any unexpected messages
+mdadm() {
+    $mdadm 2>&1 --quiet "$@"
+}
+
+# check various things
+check() {
+   case $1 in
+    raid* | linear )
+      grep -s "active $1 " /proc/mdstat > /dev/null || {
+               echo >&2 "ERROR active $1 not found" ; cat /proc/mdstat ; exit 1;}
+     ;;
+    resync | recovery )
+      sleep 0.1
+      grep -s $1 /proc/mdstat > /dev/null || {
+               echo >&2 ERROR no $1 happening; cat /proc/mdstat; exit 1; }
+     ;;
+   
+     nosync )
+       sleep 0.5
+       if grep -s 're[synccovery]* =' > /dev/null /proc/mdstat ; then
+          echo >&2 "ERROR resync or recovery is happening!"; cat /proc/mdstat ; exit 1; 
+       fi
+     ;;
+   
+    wait )
+      sleep 0.1
+      while grep 're[synccovery]* =' > /dev/null /proc/mdstat
+      do sleep 2;
+      done
+      ;;
+   
+    state )
+       grep -s "blocks.*\[$2\]\$" /proc/mdstat > /dev/null || {
+               echo >&2 "ERROR state $2 not found!"; cat /proc/mdstat ; exit 1; }
+       sleep 0.5
+      ;;
+   
+    * ) echo >&2 ERROR unknown check $1 ; exit 1;
+   esac
+}
+
+# basic device test
+
+testdev() {
+   dev=$1
+   cnt=$2
+   dvsize=$3
+   chunk=$4
+   mkfs -j $dev > /dev/null 2>&1 && fsck -fn $dev >&2
+   dsize=$[dvsize/chunk]
+   dsize=$[dsize*chunk]
+   rasize=$[dsize*1024*cnt]
+   if [ $rasize -ne `/sbin/blockdev --getsize64 $dev` ]
+   then
+     echo "ERROR: size is wrong for $dev: $cnt * $dvsize (chunk=$chunk) = $rasize, not `/sbin/blockdev --getsize64 $dev`"
+     exit 1
+   fi
+}
+
 
 
 for script in tests/$prefix*[^~]
 do
-   if sh -x $script > $targetdir/log 2>&1
-   then echo "$script succeeded"
+   # source script in a subshell, so it has access to our
+   # namespace, but cannot change it.
+   if ( set -ex ; . $script )  2> $targetdir/log
+   then echo "$script succeeded" 
    else cat $targetdir/log
         echo "$script failed"
        exit 1
index 9e7756929838f96adab3474bc711574769e378d8..6f08ba0cd88914a30dc704cced9a0991bda4ef45 100644 (file)
@@ -1,22 +1,20 @@
 
 # create a simple linear
-set -ex
 
-$mdadm -CR $md0 -l linear -n3 $dev0 $dev1 $dev2
-$check linear
-sh tests/testdev $md0 3 $mdsize0 64 
-$mdadm -S $md0
+mdadm -CR $md0 -l linear -n3 $dev0 $dev1 $dev2
+check linear
+testdev $md0 3 $mdsize0 64 
+mdadm -S $md0
 
 # now with verion-1 superblock
-$mdadm -CR $md0 -e1 --level=linear -n4 $dev0 $dev1 $dev2 $dev3
-$check linear
-sh tests/testdev $md0 4 $mdsize1 64 
-$mdadm -S $md0
+mdadm -CR $md0 -e1 --level=linear -n4 $dev0 $dev1 $dev2 $dev3
+check linear
+testdev $md0 4 $mdsize1 64 
+mdadm -S $md0
 
 # now with no superblock
-$mdadm -B $md0 -l linear -n5 $dev0 $dev1 $dev2 $dev3 $dev4 
-$check linear
-sh tests/testdev $md0 5 $size 64
-$mdadm -S $md0
+mdadm -B $md0 -l linear -n5 $dev0 $dev1 $dev2 $dev3 $dev4 
+check linear
+testdev $md0 5 $size 64
+mdadm -S $md0
 
-exit 0
index c5ea9d3537c6bc8012a5783fa62737c9b89d761a..07437c0852e6d179a8409e016384fca1771d87da 100644 (file)
@@ -1,44 +1,43 @@
 
 # create a simple raid0
-set -e
 
-$mdadm -CR $md0 -l raid0 -n3 $dev0 $dev1 $dev2 
-$check raid0
-sh tests/testdev $md0 3 $mdsize0 64 
-$mdadm -S $md0
+mdadm -CR $md0 -l raid0 -n3 $dev0 $dev1 $dev2 
+check raid0
+testdev $md0 3 $mdsize0 64 
+mdadm -S $md0
 
 # now with verion-1 superblock
-$mdadm -CR $md0 -e1 -l0 -n4 $dev0 $dev1 $dev2 $dev3 
-$check raid0
-sh tests/testdev $md0 4 $mdsize1 64 
-$mdadm -S $md0
+mdadm -CR $md0 -e1 -l0 -n4 $dev0 $dev1 $dev2 $dev3 
+check raid0
+testdev $md0 4 $mdsize1 64 
+mdadm -S $md0
 
 # now with no superblock
-$mdadm -B $md0 -l0 -n5 $dev0 $dev1 $dev2 $dev3 $dev4 
-$check raid0
-sh tests/testdev $md0 5 $size 64
-$mdadm -S $md0
+mdadm -B $md0 -l0 -n5 $dev0 $dev1 $dev2 $dev3 $dev4 
+check raid0
+testdev $md0 5 $size 64
+mdadm -S $md0
 
 
 # now same again with different chunk size
 for chunk in 4 32 256
 do
-  $mdadm -CR $md0 -l raid0 --chunk $chunk -n3 $dev0 $dev1 $dev2 
-  $check raid0
-  sh tests/testdev $md0 3 $mdsize0 $chunk
-  $mdadm -S $md0
+  mdadm -CR $md0 -l raid0 --chunk $chunk -n3 $dev0 $dev1 $dev2 
+  check raid0
+  testdev $md0 3 $mdsize0 $chunk
+  mdadm -S $md0
 
   # now with verion-1 superblock
-  $mdadm -CR $md0 -e1 -l0 -c $chunk -n4 $dev0 $dev1 $dev2 $dev3 
-  $check raid0
-  sh tests/testdev $md0 4 $mdsize1 $chunk
-  $mdadm -S $md0
+  mdadm -CR $md0 -e1 -l0 -c $chunk -n4 $dev0 $dev1 $dev2 $dev3 
+  check raid0
+  testdev $md0 4 $mdsize1 $chunk
+  mdadm -S $md0
 
   # now with no superblock
-  $mdadm -B $md0 -l0 -n5 --chun=$chunk $dev0 $dev1 $dev2 $dev3 $dev4 
-  $check raid0
-  sh tests/testdev $md0 5 $size $chunk
-  $mdadm -S $md0
+  mdadm -B $md0 -l0 -n5 --chun=$chunk $dev0 $dev1 $dev2 $dev3 $dev4 
+  check raid0
+  testdev $md0 5 $size $chunk
+  mdadm -S $md0
 
 done
 exit 0
index 4ffdbae29dccd674dcf3377a2e26f5c0e36d614c..01e4241ce91d07aae92d301ef99efb1564411724 100644 (file)
@@ -4,32 +4,32 @@
 # test resync and recovery.
 set -e
 
-$mdadm -CR $md0 -l 1 -n2 $dev0 $dev1 
-$check resync
-$check raid1
-sh tests/testdev $md0 1 $mdsize0 1
-$mdadm -S $md0
+mdadm -CR $md0 -l 1 -n2 $dev0 $dev1 
+check resync
+check raid1
+testdev $md0 1 $mdsize0 1
+mdadm -S $md0
 
 # now with verion-1 superblock, spare
-$mdadm -CR $md0 -e1 --level=raid1 -n3 -x2 $dev0 missing missing $dev1 $dev2 
-$check recovery
-$check raid1
-sh tests/testdev $md0 1 $mdsize1 1
-$mdadm -S $md0
+mdadm -CR $md0 -e1 --level=raid1 -n3 -x2 $dev0 missing missing $dev1 $dev2 
+check recovery
+check raid1
+testdev $md0 1 $mdsize1 1
+mdadm -S $md0
 
 # now with no superblock
-$mdadm -B $md0 -l mirror  -n2 $dev0 $dev1  
-$check resync
-$check raid1
-sh tests/testdev $md0 1 $size 1
-$mdadm -S $md0
+mdadm -B $md0 -l mirror  -n2 $dev0 $dev1  
+check resync
+check raid1
+testdev $md0 1 $size 1
+mdadm -S $md0
 
 # again, but with no resync
-$mdadm -B $md0 -l 1 --assume-clean -n2 $dev0 $dev1 
-$check raid1
-$check nosync
-sh tests/testdev $md0 1 $size 1
-$mdadm -S $md0
+mdadm -B $md0 -l 1 --assume-clean -n2 $dev0 $dev1 
+check raid1
+check nosync
+testdev $md0 1 $size 1
+mdadm -S $md0
 
 
 exit 0
index 12fa9d3e0e4c7f19b6b53bc36ad32e815d9e1b16..fe781bafeae2ad4131c4fc03cbf126348c00e5d2 100644 (file)
@@ -12,8 +12,8 @@ do
    n2 ) m=3;;
    n3 ) m=2;;
  esac
$mdadm --create --run --level=raid10 --layout $lo --raid-disks 6 -x 1 $md0 $devs
$check resync ; $check raid10
sh tests/testdev $md0 $m $mdsize0 $[64*cm]
$mdadm -S $md0
+ mdadm --create --run --level=raid10 --layout $lo --raid-disks 6 -x 1 $md0 $devs
check resync ; check raid10
+ testdev $md0 $m $mdsize0 $[64*cm]
+ mdadm -S $md0
 done
index a087d630f85a7b039e2c9fd25fc3423c82bc480d..a45668ab21a20c888645da27f61d165b6f9c4634 100644 (file)
@@ -1,17 +1,16 @@
 
 # create a simple raid4 set
-set -e
 
-$mdadm -CfR $md0 -l 4 -n3 $dev0 $dev1 $dev2 
-$check resync ; $check raid5
-sh tests/testdev $md0 2 $mdsize0 64
-$mdadm -S $md0
+mdadm -CfR $md0 -l 4 -n3 $dev0 $dev1 $dev2 
+check resync ; check raid5
+testdev $md0 2 $mdsize0 64
+mdadm -S $md0
 
 # now with verion-1 superblock
-$mdadm -CR $md0 -e1 --level=raid4 -n4 $dev0 $dev1 $dev2 $dev3 
-$check resync; $check raid5
-sh tests/testdev $md0 3 $mdsize1 64
-$mdadm -S $md0
+mdadm -CR $md0 -e1 --level=raid4 -n4 $dev0 $dev1 $dev2 $dev3 
+check resync; check raid5
+testdev $md0 3 $mdsize1 64
+mdadm -S $md0
 
 
 exit 0
index 6ca86e0ec676e1952985e22a34262a9a42fba00b..7192ac53bc99ac297b9b5d02e1a0cbbddfb20950 100644 (file)
@@ -1,33 +1,32 @@
 
 # create a simple raid5 set
-set -e
 
-$mdadm -CfR $md0 -l 5 -n3 $dev0 $dev1 $dev2 
-$check resync
-sh tests/testdev $md0 2 $mdsize0 64
-$mdadm -S $md0
+mdadm -CfR $md0 -l 5 -n3 $dev0 $dev1 $dev2 
+check resync
+testdev $md0 2 $mdsize0 64
+mdadm -S $md0
 
 # now with verion-1 superblock
-$mdadm -CR $md0 -e1 --level=raid5 -n4 $dev0 $dev1 $dev2 $dev3 
-$check recovery
-sh tests/testdev $md0 3 $mdsize1 64
-$mdadm -S $md0
+mdadm -CR $md0 -e1 --level=raid5 -n4 $dev0 $dev1 $dev2 $dev3 
+check recovery
+testdev $md0 3 $mdsize1 64
+mdadm -S $md0
 
 # now same again with explicit layout
 
 for lo in la ra left-symmetric right-symmetric
 do
 
-  $mdadm -CfR $md0  -l 5 -p $lo -n3 $dev0 $dev1 $dev2 
-  $check resync ; $check raid5
-  sh tests/testdev $md0 2 $mdsize0 64
-  $mdadm -S $md0
+  mdadm -CfR $md0  -l 5 -p $lo -n3 $dev0 $dev1 $dev2 
+  check resync ; check raid5
+  testdev $md0 2 $mdsize0 64
+  mdadm -S $md0
 
   # now with verion-1 superblock
-  $mdadm -CR $md0 -e1 --level=raid5 --layout $lo -n4 $dev0 $dev1 $dev2 $dev3 
-  $check recovery ; $check raid5
-  sh tests/testdev $md0 3 $mdsize1 64
-  $mdadm -S $md0
+  mdadm -CR $md0 -e1 --level=raid5 --layout $lo -n4 $dev0 $dev1 $dev2 $dev3 
+  check recovery ; check raid5
+  testdev $md0 3 $mdsize1 64
+  mdadm -S $md0
 
 done
 
index 827fdafc55a49a1b8f1d891381291d9de7b06d4a..ba8c61cf863d722017d700f6fc6a0dc27abbc330 100644 (file)
@@ -1,17 +1,16 @@
 
 # create a simple raid6 set
-set -e
 
-$mdadm -CfR $md0 -l 6 -n4 $dev0 $dev1 $dev2 $dev3 
-$check resync ; $check raid6
-sh tests/testdev $md0 2 $mdsize0 64
-$mdadm -S $md0
+mdadm -CfR $md0 -l 6 -n4 $dev0 $dev1 $dev2 $dev3 
+check resync ; check raid6
+testdev $md0 2 $mdsize0 64
+mdadm -S $md0
 
 # now with verion-1 superblock
-$mdadm -CR $md0 -e1 --level=raid6 -n5 $dev0 $dev1 $dev2 $dev3 $dev4 
-$check resync ; $check raid6
-sh tests/testdev $md0 3 $mdsize1 64
-$mdadm -S $md0
+mdadm -CR $md0 -e1 --level=raid6 -n5 $dev0 $dev1 $dev2 $dev3 $dev4 
+check resync ; check raid6
+testdev $md0 3 $mdsize1 64
+mdadm -S $md0
 
 
 exit 0
index 76488b04cbecfb57d861fcb8c811edf106a4a986..c3786630935741ed66a7eae5449ec2a64423577b 100644 (file)
@@ -1,30 +1,28 @@
 
-set -e
-
 # create a raid1, fail and remove a drive during initial sync
 # Add two more, fail and remove one
 # wait for sync to complete, fail, remove, re-add
 
-$mdadm -CR $md0 -l1 -n4 $dev0 $dev1 $dev2 missing
-$check resync
-$mdadm $md0 --fail $dev2 
-$check resync
-$mdadm $md0 --fail $dev1 
+mdadm -CR $md0 -l1 -n4 $dev0 $dev1 $dev2 missing
+check resync
+mdadm $md0 --fail $dev2 
+check resync
+mdadm $md0 --fail $dev1 
 sleep 1
-$check nosync
-$check state U___
-$mdadm $md0 --add $dev4 $dev3 
-$check recovery
+check nosync
+check state U___
+mdadm $md0 --add $dev4 $dev3 
+check recovery
 # there could be two separate recoveries, one for each dev
-$check wait
-$check wait
-$mdadm $md0 --remove $dev2 $dev1 
-$check nosync
-$check state UUU_
+check wait
+check wait
+mdadm $md0 --remove $dev2 $dev1 
+check nosync
+check state UUU_
 
-$mdadm $md0 -a $dev2 
-$check recovery
-$check wait
-$check state UUUU
+mdadm $md0 -a $dev2 
+check recovery
+check wait
+check state UUUU
 
-$mdadm -S $md0
+mdadm -S $md0
index 1aaa5976bc91a5713c1d58b301df375856a91669..5c76a0bb3465ffe2f3fdae76f370aa6526894be5 100644 (file)
@@ -5,23 +5,23 @@ set -e
 # Add two more, fail and remove one
 # wait for sync to complete, fail, remove, re-add
 
-$mdadm -CR $md0 -l5 -n4 $dev0 $dev1 $dev2 $dev3 
-$check recovery
-$mdadm $md0 --fail $dev3 
-$check nosync
-$check state UUU_
+mdadm -CR $md0 -l5 -n4 $dev0 $dev1 $dev2 $dev3 
+check recovery
+mdadm $md0 --fail $dev3 
+check nosync
+check state UUU_
 
-$mdadm $md0 --add $dev4 $dev5 
-$check recovery
-$check wait
-$mdadm $md0 --fail $dev0 
-$mdadm $md0 --remove $dev3 $dev0 
-$check recovery
-$check state _UUU
+mdadm $md0 --add $dev4 $dev5 
+check recovery
+check wait
+mdadm $md0 --fail $dev0 
+mdadm $md0 --remove $dev3 $dev0 
+check recovery
+check state _UUU
 
-$mdadm $md0 -a $dev3 
-$check recovery
-$check wait
-$check state UUUU
+mdadm $md0 -a $dev3 
+check recovery
+check wait
+check state UUUU
 
-$mdadm -S $md0
\ No newline at end of file
+mdadm -S $md0
\ No newline at end of file
index 10507a76b4c0af50bb5a36048530769b59b06a5a..6b2b212d7488bd64111ac1840f5b082bef4d9c1b 100644 (file)
@@ -2,40 +2,40 @@
 set -e
 # Make a raid1,  add a device, then remove it again.
 
-$mdadm -CR $md0 -l1 -n2 -x1 $dev0 $dev1 $dev2  
-$check resync
-$check wait
-$check state UU
+mdadm -CR $md0 -l1 -n2 -x1 $dev0 $dev1 $dev2  
+check resync
+check wait
+check state UU
 
-$mdadm --grow $md0 -n 3
-$check recovery
-$check wait
-$check state UUU
+mdadm --grow $md0 -n 3
+check recovery
+check wait
+check state UUU
 
-$mdadm $md0 --fail $dev0 
-$check state _UU
+mdadm $md0 --fail $dev0 
+check state _UU
 
-$mdadm --grow $md0 -n 2
-$check state UU
+mdadm --grow $md0 -n 2
+check state UU
 
-$mdadm -S $md0
+mdadm -S $md0
 # same again for version-1
 
 
-$mdadm -CR $md0 -l1 -n2 -e1.2 -x1 $dev0 $dev1 $dev2  
-$check resync
-$check wait
-$check state UU
+mdadm -CR $md0 -l1 -n2 -e1.2 -x1 $dev0 $dev1 $dev2  
+check resync
+check wait
+check state UU
 
-$mdadm --grow $md0 -n 3
-$check recovery
-$check wait
-$check state UUU
+mdadm --grow $md0 -n 3
+check recovery
+check wait
+check state UUU
 
-$mdadm $md0 --fail $dev0 
-$check state _UU
+mdadm $md0 --fail $dev0 
+check state _UU
 
-$mdadm --grow $md0 -n 2
-$check state UU
+mdadm --grow $md0 -n 2
+check state UU
 
-$mdadm -S $md0
+mdadm -S $md0
index 95873eae28b460a14a035d46e9f1d7a8e143d4ad..e789707fcf5eb0d0146e9d3d31c6c5181245c3b1 100644 (file)
@@ -3,35 +3,35 @@ set -e
 
 # create a small raid1 array, make it larger.  Then make it smaller
 
-$mdadm -CR $md0 --level raid1 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3 
-$check wait
-$check state UUU
-sh tests/testdev $md0 1 $[size/2] 1
+mdadm -CR $md0 --level raid1 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3 
+check wait
+check state UUU
+testdev $md0 1 $[size/2] 1
 
-$mdadm --grow $md0 --size max
-$check resync
-$check wait
-sh tests/testdev $md0 1 $mdsize0 1
+mdadm --grow $md0 --size max
+check resync
+check wait
+testdev $md0 1 $mdsize0 1
 
-$mdadm --grow $md0 --size $[size/2]
-$check nosync
-sh tests/testdev $md0 1 $[size/2] 1
+mdadm --grow $md0 --size $[size/2]
+check nosync
+testdev $md0 1 $[size/2] 1
 
-$mdadm -S $md0
+mdadm -S $md0
 
 # same again with version 1.1 superblock
-$mdadm -CR $md0 --level raid1 --metadata=1.1 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3 
-$check wait
-$check state UUU
-sh tests/testdev $md0 1 $[size/2] 1
+mdadm -CR $md0 --level raid1 --metadata=1.1 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3 
+check wait
+check state UUU
+testdev $md0 1 $[size/2] 1
 
-$mdadm --grow $md0 --size max
-$check resync
-$check wait
-sh tests/testdev $md0 1 $[size-1] 1
+mdadm --grow $md0 --size max
+check resync
+check wait
+testdev $md0 1 $[size-1] 1
 
-$mdadm --grow $md0 --size $[size/2]
-$check nosync
-sh tests/testdev $md0 1 $[size/2] 1
+mdadm --grow $md0 --size $[size/2]
+check nosync
+testdev $md0 1 $[size/2] 1
 
-$mdadm -S $md0
+mdadm -S $md0
index 0ac968c6a86bb6e06b820b7b402c78b8f706eb5e..b8de3d4c87ad12fd1d03a02f66e709c483714d94 100644 (file)
@@ -3,35 +3,35 @@ set -e
 
 # create a small raid5 array, make it larger.  Then make it smaller
 
-$mdadm -CR $md0 --level raid5 --chunk=32 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3 
-$check wait
-$check state UUU
-sh tests/testdev $md0 2 $[size/2] 32
+mdadm -CR $md0 --level raid5 --chunk=32 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3 
+check wait
+check state UUU
+testdev $md0 2 $[size/2] 32
 
-$mdadm --grow $md0 --size max
-$check resync
-$check wait
-sh tests/testdev $md0 2 $mdsize0 64
+mdadm --grow $md0 --size max
+check resync
+check wait
+testdev $md0 2 $mdsize0 64
 
-$mdadm --grow $md0 --size $[size/2]
-$check nosync
-sh tests/testdev $md0 2 $[size/2] 64
+mdadm --grow $md0 --size $[size/2]
+check nosync
+testdev $md0 2 $[size/2] 64
 
-$mdadm -S $md0
+mdadm -S $md0
 
 # same again with version 1.1 superblock
-$mdadm -CR $md0 --level raid5 --metadata=1.1 --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4 
-$check wait
-$check state UUUU
+mdadm -CR $md0 --level raid5 --metadata=1.1 --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4 
+check wait
+check state UUUU
+testdev $md0 3 $[size/2] 128
+
+mdadm --grow $md0 --size max
+check resync
+check wait
+testdev $md0 3 $[size-1] 128
+
+mdadm --grow $md0 --size $[size/2]
+check nosync
 sh tests/testdev $md0 3 $[size/2] 128
 
-$mdadm --grow $md0 --size max
-$check resync
-$check wait
-sh tests/testdev $md0 3 $[size-1] 128
-
-$mdadm --grow $md0 --size $[size/2]
-$check nosync
-sh tests/testdev $md0 3 $[size/2] 128
-
-$mdadm -S $md0
+mdadm -S $md0
index ef864e25a768a8f3ba6e4d6a005069f35da83edb..6f4cce2e357ff87eb4fbeae9c6c0e464e9054c19 100644 (file)
@@ -3,35 +3,35 @@ set -e
 
 # create a small raid6 array, make it larger.  Then make it smaller
 
-$mdadm -CR $md0 --level raid6 --chunk=32 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4 
-$check wait
-$check state UUUU
-sh tests/testdev $md0 2 $[size/2] 32
+mdadm -CR $md0 --level raid6 --chunk=32 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4 
+check wait
+check state UUUU
+testdev $md0 2 $[size/2] 32
 
-$mdadm --grow $md0 --size max
-$check resync
-$check wait
-sh tests/testdev $md0 2 $mdsize0 64
+mdadm --grow $md0 --size max
+check resync
+check wait
+testdev $md0 2 $mdsize0 64
 
-$mdadm --grow $md0 --size $[size/2]
-$check nosync
-sh tests/testdev $md0 2 $[size/2] 64
+mdadm --grow $md0 --size $[size/2]
+check nosync
+testdev $md0 2 $[size/2] 64
 
-$mdadm -S $md0
+mdadm -S $md0
 
 # same again with version 1.1 superblock
-$mdadm -CR $md0 --level raid6 --metadata=1.1 --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4 
-$check wait
-$check state UUUU
-sh tests/testdev $md0 2 $[size/2] 128
+mdadm -CR $md0 --level raid6 --metadata=1.1 --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4 
+check wait
+check state UUUU
+testdev $md0 2 $[size/2] 128
 
-$mdadm --grow $md0 --size max
-$check resync
-$check wait
-sh tests/testdev $md0 2 $[size-1] 128
+mdadm --grow $md0 --size max
+check resync
+check wait
+testdev $md0 2 $[size-1] 128
 
-$mdadm --grow $md0 --size $[size/2]
-$check nosync
-sh tests/testdev $md0 2 $[size/2] 128
+mdadm --grow $md0 --size $[size/2]
+check nosync
+testdev $md0 2 $[size/2] 128
 
-$mdadm -S $md0
+mdadm -S $md0
index 96da6a56ba92548897bc94a3255bc25639cb914f..0d53901a2d1f19b6da8a9c9eeba47147eba66498 100644 (file)
@@ -1,28 +1,27 @@
-set -e
 
 # create a raid0 array from 3 devices, and assemble it in a multitude of ways.
 # explicitly list devices
 # uuid, md-minor on command line with wildcard devices
 # mdadm.conf file
 
-$mdadm -CR $md2 -l0 -n3 $dev0 $dev1 $dev2 
-$check raid0
-tst="sh tests/testdev $md2 3 $mdsize0 64"
+mdadm -CR $md2 -l0 -n3 $dev0 $dev1 $dev2 
+check raid0
+tst="testdev $md2 3 $mdsize0 64"
 $tst
-uuid=`$mdadm -Db $md2 | sed 's/.*UUID=//'`
-$mdadm -S $md2
+uuid=`mdadm -Db $md2 | sed 's/.*UUID=//'`
+mdadm -S $md2
 
-$mdadm -A $md2 $dev0 $dev1 $dev2  
+mdadm -A $md2 $dev0 $dev1 $dev2  
 $tst
-$mdadm -S $md2
+mdadm -S $md2
 
-$mdadm -A $md2 -u $uuid $devlist 
+mdadm -A $md2 -u $uuid $devlist 
 $tst
-$mdadm -S $md2
+mdadm -S $md2
 
-$mdadm --assemble $md2 --super-minor=2 $devlist 
+mdadm --assemble $md2 --super-minor=2 $devlist 
 $tst
-$mdadm -S $md2
+mdadm -S $md2
 
 conf=$targetdir/mdadm.conf
 { 
@@ -30,18 +29,18 @@ conf=$targetdir/mdadm.conf
   echo array $md2 UUID=$uuid
 } > $conf
 
-$mdadm -As -c $conf $md2 
+mdadm -As -c $conf $md2 
 $tst
-$mdadm -S $md2
+mdadm -S $md2
 
 { 
   echo DEVICE $devlist
   echo array $md2 super-minor=2
 } > $conf
 
-$mdadm -As -c $conf $md2 
+mdadm -As -c $conf $md2 
 $tst
-$mdadm -S $md2
+mdadm -S $md2
 
 
 { 
@@ -49,46 +48,46 @@ $mdadm -S $md2
   echo array $md2 devices=$dev0,$dev1,$dev2
 } > $conf
 
-$mdadm -As -c $conf $md2 
+mdadm -As -c $conf $md2 
 $tst
 
 echo "DEVICE $devlist" > $conf
-$mdadm -Db $md2 >> $conf
-$mdadm -S $md2
+mdadm -Db $md2 >> $conf
+mdadm -S $md2
 
-$mdadm --assemble --scan --config=$conf $md2 
+mdadm --assemble --scan --config=$conf $md2 
 $tst
-$mdadm -S $md2
+mdadm -S $md2
 
 echo "  metadata=0.90 devices=$dev0,$dev1,$dev2" >> $conf
-$mdadm --assemble --scan --config=$conf $md2 
+mdadm --assemble --scan --config=$conf $md2 
 $tst
-$mdadm -S $md2
+mdadm -S $md2
 
 
 ### Now for version 1...
 
 
-$mdadm -CR $md2 -l0 --metadata=1.0 -n3 $dev0 $dev1 $dev2 
-$check raid0
-tst="sh tests/testdev $md2 3 $mdsize1 64"
+mdadm -CR $md2 -l0 --metadata=1.0 -n3 $dev0 $dev1 $dev2 
+check raid0
+tst="testdev $md2 3 $mdsize1 64"
 $tst
 
-uuid=`$mdadm -Db $md2 | sed 's/.*UUID=//'`
-$mdadm -S $md2
+uuid=`mdadm -Db $md2 | sed 's/.*UUID=//'`
+mdadm -S $md2
 
-$mdadm -A $md2 $dev0 $dev1 $dev2  
+mdadm -A $md2 $dev0 $dev1 $dev2  
 $tst
-$mdadm -S $md2
+mdadm -S $md2
 
-$mdadm -A $md2 -u $uuid $devlist 
+mdadm -A $md2 -u $uuid $devlist 
 $tst
-$mdadm -S $md2
+mdadm -S $md2
 
 # version 1 has now super-minor
-# $mdadm --assemble $md2 --super-minor=2 $devlist # 
+# mdadm --assemble $md2 --super-minor=2 $devlist # 
 # $tst
-# $mdadm -S $md2
+# mdadm -S $md2
 
 conf=$targetdir/mdadm.conf
 { 
@@ -96,18 +95,18 @@ conf=$targetdir/mdadm.conf
   echo array $md2 UUID=$uuid
 } > $conf
 
-$mdadm -As -c $conf $md2 
+mdadm -As -c $conf $md2 
 $tst
-$mdadm -S $md2
+mdadm -S $md2
 
 #{ 
 #  echo DEVICE $devlist
 #  echo array $md2 super-minor=2
 #} > $conf
 #
-#$mdadm -As -c $conf $md2 
+#mdadm -As -c $conf $md2 
 #$tst
-#$mdadm -S $md2
+#mdadm -S $md2
 
 
 { 
@@ -115,18 +114,18 @@ $mdadm -S $md2
   echo array $md2 devices=$dev0,$dev1,$dev2
 } > $conf
 
-$mdadm -As -c $conf $md2 
+mdadm -As -c $conf $md2 
 $tst
 
 echo "DEVICE $devlist" > $conf
-$mdadm -Db $md2 >> $conf
-$mdadm -S $md2
+mdadm -Db $md2 >> $conf
+mdadm -S $md2
 
-$mdadm --assemble --scan --config=$conf $md2 
+mdadm --assemble --scan --config=$conf $md2 
 $tst
-$mdadm -S $md2
+mdadm -S $md2
 
 echo "  metadata=1 devices=$dev0,$dev1,$dev2" >> $conf
-$mdadm --assemble --scan --config=$conf $md2 
+mdadm --assemble --scan --config=$conf $md2 
 $tst
-$mdadm -S $md2
+mdadm -S $md2
index 5ca5ddd7c28382c6466284b661207bae2509afc8..b2b06986220945ddb765cadfc21085399a52edfc 100644 (file)
@@ -3,19 +3,19 @@ set -e
 # create a raid5 array and assemble it in various ways,
 # including with missing devices.
 
-$mdadm -CR $md1 -l5 -n3 $dev0 $dev1 $dev2 
-tst="$check raid5 ;sh tests/testdev $md1 2 $mdsize0 64 ; $mdadm -S $md1"
-uuid=`$mdadm -Db $md1 | sed 's/.*UUID=//'`
-$check wait
+mdadm -CR $md1 -l5 -n3 $dev0 $dev1 $dev2 
+tst="check raid5 ;testdev $md1 2 $mdsize0 64 ; mdadm -S $md1"
+uuid=`mdadm -Db $md1 | sed 's/.*UUID=//'`
+check wait
 eval $tst
 
-$mdadm -A $md1 $dev0 $dev1 $dev2 
+mdadm -A $md1 $dev0 $dev1 $dev2 
 eval $tst
 
-$mdadm -A $md1 -u $uuid $devlist 
+mdadm -A $md1 -u $uuid $devlist 
 eval $tst
 
-$mdadm -A $md1 -m 1 $devlist  
+mdadm -A $md1 -m 1 $devlist  
 eval $tst
 
 
@@ -25,7 +25,7 @@ conf=$targetdir/mdadm.conf
   echo array $md1 UUID=$uuid
 } > $conf
 
-$mdadm -As -c $conf $md1 
+mdadm -As -c $conf $md1 
 eval $tst
 
 { 
@@ -33,7 +33,7 @@ eval $tst
   echo array $md1 super-minor=1
 } > $conf
 
-$mdadm -As -c $conf  
+mdadm -As -c $conf  
 eval $tst
 
 { 
@@ -41,31 +41,31 @@ eval $tst
   echo array $md1 devices=$dev0,$dev1,$dev2
 } > $conf
 
-$mdadm -As -c $conf 
+mdadm -As -c $conf 
 
 echo "DEVICE $devlist" > $conf
-$mdadm -Db $md1 >> $conf
+mdadm -Db $md1 >> $conf
 eval $tst
 
-$mdadm --assemble --scan --config=$conf $md1 
+mdadm --assemble --scan --config=$conf $md1 
 eval $tst
 
 echo "  metadata=0.90 devices=$dev0,$dev1,$dev2" >> $conf
-$mdadm --assemble --scan --config=$conf $md1 
+mdadm --assemble --scan --config=$conf $md1 
 eval $tst
 
 ### Now with a missing device
 
-$mdadm -AR $md1 $dev0 $dev2 # 
-$check state U_U
+mdadm -AR $md1 $dev0 $dev2 # 
+check state U_U
 eval $tst
 
-$mdadm -A $md1 -u $uuid $devlist 
-$check state U_U
+mdadm -A $md1 -u $uuid $devlist 
+check state U_U
 eval $tst
 
-$mdadm -A $md1 -m 1 $devlist  
-$check state U_U
+mdadm -A $md1 -m 1 $devlist  
+check state U_U
 eval $tst
 
 
@@ -75,8 +75,8 @@ conf=$targetdir/mdadm.conf
   echo array $md1 UUID=$uuid
 } > $conf
 
-$mdadm -As -c $conf $md1 
-$check state U_U
+mdadm -As -c $conf $md1 
+check state U_U
 eval $tst
 
 { 
@@ -84,8 +84,8 @@ eval $tst
   echo array $md1 super-minor=1
 } > $conf
 
-$mdadm -As -c $conf  
-$check state U_U
+mdadm -As -c $conf  
+check state U_U
 eval $tst
 
 { 
@@ -93,18 +93,18 @@ eval $tst
   echo array $md1 devices=$dev0,$dev1,$dev2
 } > $conf
 
-$mdadm -As -c $conf 
+mdadm -As -c $conf 
 
 echo "DEVICE $devlist" > $conf
-$mdadm -Db $md1 >> $conf
-$check state U_U
+mdadm -Db $md1 >> $conf
+check state U_U
 eval $tst
 
-$mdadm --assemble --scan --config=$conf $md1 
-$check state U_U
+mdadm --assemble --scan --config=$conf $md1 
+check state U_U
 eval $tst
 
 echo "  metadata=0.90 devices=$dev0,$dev1,$dev2" >> $conf
-$mdadm --assemble --scan --config=$conf $md1 
-$check state U_U
+mdadm --assemble --scan --config=$conf $md1 
+check state U_U
 eval $tst
index 73ecbd5ebeeacf1256d1199ff7586cecacb19193..2a6939df3d8978ff8a2ccd4a5373f855b53faedf 100644 (file)
@@ -1,18 +1,18 @@
 set -e
 
 # create a raid0, re-assemble with a different super-minor
-$mdadm -CR $md0 -l0 -n3 $dev0 $dev1 $dev2 
-sh tests/testdev $md0 3 $mdsize0 64
-minor1=`$mdadm -E $dev0 | sed -n -e 's/.*Preferred Minor : //p'`
-$mdadm -S /dev/md0
+mdadm -CR $md0 -l0 -n3 $dev0 $dev1 $dev2 
+testdev $md0 3 $mdsize0 64
+minor1=`mdadm -E $dev0 | sed -n -e 's/.*Preferred Minor : //p'`
+mdadm -S /dev/md0
 
-$mdadm -A $md1 $dev0 $dev1 $dev2 
-minor2=`$mdadm -E $dev0 | sed -n -e 's/.*Preferred Minor : //p'`
-$mdadm -S /dev/md1
+mdadm -A $md1 $dev0 $dev1 $dev2 
+minor2=`mdadm -E $dev0 | sed -n -e 's/.*Preferred Minor : //p'`
+mdadm -S /dev/md1
 
-$mdadm -A $md1 --update=super-minor $dev0 $dev1 $dev2  
-minor3=`$mdadm -E $dev0 | sed -n -e 's/.*Preferred Minor : //p'`
-$mdadm -S /dev/md1
+mdadm -A $md1 --update=super-minor $dev0 $dev1 $dev2  
+minor3=`mdadm -E $dev0 | sed -n -e 's/.*Preferred Minor : //p'`
+mdadm -S /dev/md1
 
 case "$minor1 $minor2 $minor3" in
   "0 0 1" ) ;;
index e76df8901c6c5bcc1737f4c09a935427cb940c45..7a50131f79ba83280c83ade74b9ac005c57ac8ef 100644 (file)
@@ -2,14 +2,14 @@ set -i
 
 # create a raid1 array, let it sync, then re-assemble with a force-sync
 
-$mdadm -CR $md0 -l1 -n2 $dev0 $dev1 
-$check wait
-$mdadm -S $md0
+mdadm -CR $md0 -l1 -n2 $dev0 $dev1 
+check wait
+mdadm -S $md0
 
-$mdadm -A $md0 $dev0 $dev1 
-$check nosync
-$mdadm -S $md0
+mdadm -A $md0 $dev0 $dev1 
+check nosync
+mdadm -S $md0
 
-$mdadm -A $md0 -U resync $dev0 $dev1 
-$check resync
-$mdadm -S $md0
+mdadm -A $md0 -U resync $dev0 $dev1 
+check resync
+mdadm -S $md0
index 777c46795a5ef7e4d868e835c36de72fb834057c..ac952c23b91e5c53a06bf81ec0a9a30c86e72d70 100644 (file)
@@ -5,45 +5,45 @@ set -e
 #
 bmf=$targetdir/bitmap
 rm -f $bmf
-$mdadm --create --run $md0 --level=1 -n2 --delay=1  --bitmap $bmf $dev1 $dev2  
-$check wait
-sh tests/testdev $md0 1 $mdsize0 1
-$mdadm -S $md0
-
-$mdadm --assemble $md0 --bitmap=$bmf $dev1 $dev2
-sh tests/testdev $md0 1 $mdsize0 1
-dirty1=`$mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+mdadm --create --run $md0 --level=1 -n2 --delay=1  --bitmap $bmf $dev1 $dev2  
+check wait
+testdev $md0 1 $mdsize0 1
+mdadm -S $md0
+
+mdadm --assemble $md0 --bitmap=$bmf $dev1 $dev2
+testdev $md0 1 $mdsize0 1
+dirty1=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 sleep 4
-dirty2=`$mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+dirty2=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 
 if [ $dirty1 -lt 400 -o $dirty2 -ne 0 ]
 then  echo >&2 "ERROR bad 'dirty' counts: $dirty1 and $dirty2"
   exit 1
 fi
-$mdadm $md0 -f $dev1
-sh tests/testdev $md0 1 $mdsize0 1
+mdadm $md0 -f $dev1
+testdev $md0 1 $mdsize0 1
 sleep 4
-dirty3=`$mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+dirty3=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 if [ $dirty3 -lt 400 ]
 then 
    echo >&2 "ERROR dirty count $dirty3 is too small"
    exit 2
 fi
 
-$mdadm -S $md0
+mdadm -S $md0
 
-$mdadm --assemble -R $md0 --bitmap=$bmf $dev2
-$mdadm $md0 --add $dev1
-$check recovery
+mdadm --assemble -R $md0 --bitmap=$bmf $dev2
+mdadm $md0 --add $dev1
+check recovery
 
-dirty4=`$mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
-$check wait
+dirty4=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+check wait
 sleep 4
-dirty5=`$mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+dirty5=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 
 if [ $dirty4 -lt 400 -o $dirty5 -ne 0 ]
 then echo echo >&2 "ERROR bad 'dirty' counts at end: $dirty4 $dirty5"
   exit 1
 fi
 
-$mdadm -S $md0
+mdadm -S $md0
index 5954833b957706daab275a79478eb02af18ada4e..072dc3cca5fac8da19390fc820b04104f7c708b5 100644 (file)
@@ -3,22 +3,22 @@ set -e
 #
 # create a raid1 array, add an external bitmap
 #
-$mdadm --create --run $md0 -l 1 -n 2 $dev1 $dev2
-$check wait
-sh tests/testdev $md0 1 $mdsize0 1
+mdadm --create --run $md0 -l 1 -n 2 $dev1 $dev2
+check wait
+testdev $md0 1 $mdsize0 1
 
 bmf=$targetdir/bm
 rm -f $bmf
-$mdadm -E $dev1
-$mdadm --grow $md0 --bitmap=$bmf --delay=1 || { $mdadm -X $bmf ; exit 1; }
-dirty1=`$mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+mdadm -E $dev1
+mdadm --grow $md0 --bitmap=$bmf --delay=1 || { $mdadm -X $bmf ; exit 1; }
+dirty1=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 sleep 4
-dirty2=`$mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+dirty2=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 
-sh tests/testdev $md0 1 $mdsize0 1
-dirty3=`$mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+testdev $md0 1 $mdsize0 1
+dirty3=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 sleep 4
-dirty4=`$mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+dirty4=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 
 echo $dirty1 $dirty2 $dirty3 $dirty4
 if [ $dirty2 -ne 0 -o $dirty4 -ne 0 -o $dirty3 -lt 400 ]
@@ -26,4 +26,4 @@ then
    echo bad dirty counts
    exit 1
 fi
-$mdadm -S $md0
+mdadm -S $md0
index 9e15c1095b3ade6eba2537717c50e77c99ab65e7..0f8a43a5bfcb390789a7b1b9c79c383668a53cd8 100644 (file)
@@ -3,45 +3,45 @@ set -e
 # 
 # create a raid1 with an internal bitmap
 #
-$mdadm --create --run $md0 --level=1 -n2 --delay=1  --bitmap internal $dev1 $dev2  
-$check wait
-sh tests/testdev $md0 1 $mdsize0 1
-$mdadm -S $md0
-
-$mdadm --assemble $md0 $dev1 $dev2
-sh tests/testdev $md0 1 $mdsize0 1
-dirty1=`$mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+mdadm --create --run $md0 --level=1 -n2 --delay=1  --bitmap internal $dev1 $dev2  
+check wait
+testdev $md0 1 $mdsize0 1
+mdadm -S $md0
+
+mdadm --assemble $md0 $dev1 $dev2
+testdev $md0 1 $mdsize0 1
+dirty1=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 sleep 4
-dirty2=`$mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+dirty2=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 
 if [ $dirty1 -lt 400 -o $dirty2 -ne 0 ]
 then  echo >&2 "ERROR bad 'dirty' counts: $dirty1 and $dirty2"
   exit 1
 fi
-$mdadm $md0 -f $dev1
-sh tests/testdev $md0 1 $mdsize0 1
+mdadm $md0 -f $dev1
+testdev $md0 1 $mdsize0 1
 sleep 4
-dirty3=`$mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+dirty3=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 if [ $dirty3 -lt 400 ]
 then 
    echo >&2 "ERROR dirty count $dirty3 is too small"
    exit 2
 fi
 
-$mdadm -S $md0
+mdadm -S $md0
 
-$mdadm --assemble -R $md0  $dev2
-$mdadm $md0 --add $dev1
-$check recovery
+mdadm --assemble -R $md0  $dev2
+mdadm $md0 --add $dev1
+check recovery
 
-dirty4=`$mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
-$check wait
+dirty4=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+check wait
 sleep 4
-dirty5=`$mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+dirty5=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 
 if [ $dirty4 -lt 400 -o $dirty5 -ne 0 ]
 then echo echo >&2 "ERROR bad 'dirty' counts at end: $dirty4 $dirty5"
   exit 1
 fi
 
-$mdadm -S $md0
+mdadm -S $md0
index 72d2e08b976ed71fd26029990864b865d6546a7f..ec72decd7dd77a4168ba11bc5791b4f51489b16c 100644 (file)
@@ -7,47 +7,47 @@ set -e
 #
 bmf=$targetdir/bitmap
 rm -f $bmf
-$mdadm --create --run $md0 --level=1 -n3 --delay=1  --bitmap $bmf $dev1 $dev2 $dev3  
-$check wait
-sh tests/testdev $md0 1 $mdsize0 1
-$mdadm -S $md0
-
-$mdadm --assemble $md0 --bitmap=$bmf $dev1 $dev2 $dev3
-sh tests/testdev $md0 1 $mdsize0 1
-dirty1=`$mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+mdadm --create --run $md0 --level=1 -n3 --delay=1  --bitmap $bmf $dev1 $dev2 $dev3  
+check wait
+testdev $md0 1 $mdsize0 1
+mdadm -S $md0
+
+mdadm --assemble $md0 --bitmap=$bmf $dev1 $dev2 $dev3
+testdev $md0 1 $mdsize0 1
+dirty1=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 sleep 4
-dirty2=`$mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+dirty2=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 
 if [ $dirty1 -lt 400 -o $dirty2 -ne 0 ]
 then  echo >&2 "ERROR bad 'dirty' counts: $dirty1 and $dirty2"
   exit 1
 fi
-$mdadm $md0 -f $dev2
-sh tests/testdev $md0 1 $mdsize0 1
+mdadm $md0 -f $dev2
+testdev $md0 1 $mdsize0 1
 sleep 4
-dirty3=`$mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+dirty3=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 if [ $dirty3 -lt 400 ]
 then 
    echo >&2 "ERROR dirty count $dirty3 is too small"
    exit 2
 fi
 
-$mdadm -S $md0
+mdadm -S $md0
 
-$mdadm --assemble -R $md0 --bitmap=$bmf $dev1 $dev3
-$check nosync
-$mdadm $md0 --add $dev2
-$check recovery
+mdadm --assemble -R $md0 --bitmap=$bmf $dev1 $dev3
+check nosync
+mdadm $md0 --add $dev2
+check recovery
 
-dirty4=`$mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
-$check wait
+dirty4=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+check wait
 sleep 4
-dirty5=`$mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
+dirty5=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 
 if [ $dirty4 -lt 400 -o $dirty5 -ne 0 ]
 then echo echo >&2 "ERROR bad 'dirty' counts at end: $dirty4 $dirty5"
   exit 1
 fi
 
-$mdadm -S $md0
+mdadm -S $md0
 exit 0
index 80842abf4f8edeedb828586dab423977a3a97bb4..cbcd094b696416ee7da96f405c5d50d65f9b6c4f 100644 (file)
@@ -2,12 +2,12 @@ set -x
 
 # create an array with a name
 
-$mdadm -CR $md0 -l0 -n2 --metadata=1 --name="Fred" $dev0 $dev1
-$mdadm -E $dev0 | grep 'Name : Fred$' > /dev/null || exit 1
-$mdadm -D $md0 | grep 'Name : Fred$' > /dev/null || exit 1
-$mdadm -S $md0
-
-$mdadm -A $md0 --name="Fred" $devlist
-$mdadm -Db $md0
-$mdadm -S $md0
+mdadm -CR $md0 -l0 -n2 --metadata=1 --name="Fred" $dev0 $dev1
+mdadm -E $dev0 | grep 'Name : Fred$' > /dev/null || exit 1
+mdadm -D $md0 | grep 'Name : Fred$' > /dev/null || exit 1
+mdadm -S $md0
+
+mdadm -A $md0 --name="Fred" $devlist
+mdadm -Db $md0
+mdadm -S $md0
 
index df5d8b994f0dac257d51228c3e74406124223e2d..e3aaa64b63c997a7d90bf87fb03b4fce9d088ac2 100644 (file)
@@ -2,18 +2,18 @@ set -e
 
 # make a raid5 array, byte swap the superblocks, then assemble...
 
-$mdadm -CR $md0 -l5 -n4 $dev0 $dev1 $dev2 $dev3
+mdadm -CR $md0 -l5 -n4 $dev0 $dev1 $dev2 $dev3
 sleep 4
-$mdadm -S $md0
+mdadm -S $md0
 
-$mdadm -E --metadata=0 $dev1 | grep -v Events > $targetdir/d1
+mdadm -E --metadata=0 $dev1 | grep -v Events > $targetdir/d1
 for d in $dev0 $dev1 $dev2 $dev3
 do $dir/swap_super $d
 done
-$mdadm -E --metadata=0.swap  $dev1 | grep -v Events > $targetdir/d1s
+mdadm -E --metadata=0.swap  $dev1 | grep -v Events > $targetdir/d1s
 diff -u $targetdir/d1 $targetdir/d1s
 
-$mdadm --assemble --update=byteorder $md0 $dev0 $dev1 $dev2 $dev3
+mdadm --assemble --update=byteorder $md0 $dev0 $dev1 $dev2 $dev3
 sleep 3
 cat /proc/mdstat
-$mdadm -S $md0
+mdadm -S $md0
index 51fff60d280f4ec1abb10c172625bb522659e10b..929610cc74dee0b36e09e84d380bd48ad87b82c4 100644 (file)
@@ -2,14 +2,14 @@ set -e
 
 # create a raid1 array with a wrmostly device
 
-$mdadm -CR $md0 -l1 -n3 $dev0 $dev1 --write-mostly $dev2
-sh tests/testdev $md0 1 $mdsize0 64
+mdadm -CR $md0 -l1 -n3 $dev0 $dev1 --write-mostly $dev2
+testdev $md0 1 $mdsize0 64
 
 # unfortunately, we cannot measure if any read requests are going to $dev2
 
-$mdadm -S $md0
+mdadm -S $md0
 
-$mdadm -CR $md0 -l1 -n3 --write-behind --bitmap=internal $dev0 $dev1 --write-mostly $dev2
-sh tests/testdev $md0 1 $mdsize0 64
-$mdadm -S $md0
+mdadm -CR $md0 -l1 -n3 --write-behind --bitmap=internal $dev0 $dev1 --write-mostly $dev2
+testdev $md0 1 $mdsize0 64
+mdadm -S $md0
 
index 9e490f9abac55dc71b341501f049690eedd4a14f..a3b755e2ca5d68ad2b95e4927f11e39354778e37 100644 (file)
@@ -2,7 +2,7 @@ dev=$1
 cnt=$2
 size=$3
 chunk=$4
-mkfs -j $dev > /dev/null 2>&1 && fsck -fn $dev
+mkfs -j $dev > /dev/null 2>&1 && fsck -fn $dev >&2
 dsize=$[size/chunk]
 dsize=$[dsize*chunk]
 rasize=$[dsize*1024*cnt]