From: Neil Brown Date: Wed, 29 Mar 2006 06:28:07 +0000 (+0000) Subject: Bug fixes to pass test suite X-Git-Tag: mdadm-2.4~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9860f2711da70977cdb1fa06a4c51c0e515d3237;p=thirdparty%2Fmdadm.git Bug fixes to pass test suite Signed-off-by: Neil Brown --- diff --git a/Grow.c b/Grow.c index de53df18..125606c6 100644 --- a/Grow.c +++ b/Grow.c @@ -500,14 +500,21 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file, * other from happening. Later we could block * resync for the duration via 'sync_action'... */ - if (raid_disks >= 0) + if (raid_disks > 0) { array.raid_disks = raid_disks; - if (size >= 0) + if (ioctl(fd, SET_ARRAY_INFO, &array) != 0) { + fprintf(stderr, Name ": Cannot set raid-devices for %s: %s\n", + devname, strerror(errno)); + return 1; + } + } + if (size >= 0) { array.size = size; - if (ioctl(fd, SET_ARRAY_INFO, &array) != 0) { - fprintf(stderr, Name ": Cannot set device size/shape for %s: %s\n", - devname, strerror(errno)); - return 1; + if (ioctl(fd, SET_ARRAY_INFO, &array) != 0) { + fprintf(stderr, Name ": Cannot set device size for %s: %s\n", + devname, strerror(errno)); + return 1; + } } return 0; @@ -869,8 +876,6 @@ int Grow_restart(struct supertype *st, struct mdinfo *info, int *fdlist, int cnt fd = open(backup_file, O_RDONLY); if (fd<0) continue; - if (lseek(fd, 4096, 0) != 4096) - continue; } else { fd = fdlist[i]; if (fd < 0) @@ -909,7 +914,7 @@ int Grow_restart(struct supertype *st, struct mdinfo *info, int *fdlist, int cnt /* There should be a duplicate backup superblock 4k before here */ if (lseek64(fd, -4096, 1) < 0 || read(fd, buf, 4096) != 4096 || - memcmp(buf, &bsb, sizeof(buf)) != 0) + memcmp(buf, &bsb, sizeof(bsb)) != 0) continue; /* Cannot find leading superblock */ /* Now need the data offsets for all devices. */ diff --git a/Kill.c b/Kill.c index 2f28b990..a4d95626 100644 --- a/Kill.c +++ b/Kill.c @@ -50,12 +50,14 @@ int Kill(char *dev, int force, int quiet) if (!quiet) fprintf(stderr, Name ": Couldn't open %s for write - not zeroing\n", dev); + close(fd); return 1; } st = guess_super(fd); if (st == NULL) { if (!quiet) fprintf(stderr, Name ": Unrecognised md component device - %s\n", dev); + close(fd); return 1; } rv = st->ss->load_super(st, fd, &super, dev); diff --git a/test b/test index 307bfb83..3d722285 100644 --- a/test +++ b/test @@ -63,7 +63,10 @@ fi # mdadm always adds --quiet, and we want to see any unexpected messages mdadm() { - $mdadm --quiet "$@" + case $* in + *-C* ) $mdadm --quiet "$@" --auto=yes;; + * ) $mdadm --quiet "$@" + esac } # check various things diff --git a/tests/03r5assemV1 b/tests/03r5assemV1 index 7df277ec..7553a4f0 100644 --- a/tests/03r5assemV1 +++ b/tests/03r5assemV1 @@ -49,7 +49,6 @@ mdadm -As -c $conf echo "DEVICE $devlist" > $conf mdadm -Db $md1 >> $conf eval $tst - mdadm --assemble --scan --config=$conf $md1 eval $tst echo PING >&2 diff --git a/tests/05r1-bitmapfile b/tests/05r1-bitmapfile index d2275763..59564cb0 100644 --- a/tests/05r1-bitmapfile +++ b/tests/05r1-bitmapfile @@ -32,10 +32,10 @@ fi mdadm -S $md0 mdadm --assemble -R $md0 --bitmap=$bmf $dev2 +dirty4=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'` mdadm $md0 --add $dev1 -check recovery +#it is too fast# check recovery -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'`