| |
| # create a simple mirror and check failfast flag works |
| mdadm -CR $md0 -e1.2 --level=raid1 --failfast -n2 $dev0 $dev1 |
| check raid1 |
| if grep -v failfast /sys/block/md0/md/rd*/state > /dev/null |
| then |
| die "failfast missing" |
| fi |
| |
| # Removing works with the failfast flag |
| mdadm $md0 -f $dev0 |
| mdadm $md0 -r $dev0 |
| if grep -v failfast /sys/block/md0/md/rd1/state > /dev/null |
| then |
| die "failfast missing" |
| fi |
| |
| # Adding works with the failfast flag |
| mdadm $md0 -a --failfast $dev0 |
| check wait |
| if grep -v failfast /sys/block/md0/md/rd0/state > /dev/null |
| then |
| die "failfast missing" |
| fi |
| |
| mdadm -S $md0 |
| |
| # Assembling works with the failfast flag |
| mdadm -A $md0 $dev0 $dev1 |
| check raid1 |
| if grep -v failfast /sys/block/md0/md/rd*/state > /dev/null |
| then |
| die "failfast missing" |
| fi |
| |
| # Adding works with the nofailfast flag |
| mdadm $md0 -f $dev0 |
| mdadm $md0 -r $dev0 |
| mdadm $md0 -a --nofailfast $dev0 |
| check wait |
| if grep failfast /sys/block/md0/md/rd0/state > /dev/null |
| then |
| die "failfast should be missing" |
| fi |
| |
| # Assembling with one faulty slave works with the failfast flag |
| mdadm $md0 -f $dev0 |
| mdadm $md0 -r $dev0 |
| mdadm -S $md0 |
| mdadm -A $md0 $dev0 $dev1 |
| check raid1 |
| mdadm -S $md0 |
| |
| # Spare works with the failfast flag |
| mdadm -CR $md0 -e1.2 --level=raid1 --failfast -n2 $dev0 $dev1 |
| check raid1 |
| mdadm $md0 -a --failfast $dev2 |
| check wait |
| check spares 1 |
| if grep -v failfast /sys/block/md0/md/rd*/state > /dev/null |
| then |
| die "failfast missing" |
| fi |
| |
| # Grow works with the failfast flag |
| mdadm -G $md0 --raid-devices=3 |
| check wait |
| if grep -v failfast /sys/block/md0/md/rd*/state > /dev/null |
| then |
| die "failfast missing" |
| fi |
| mdadm -S $md0 |
| |
| exit 0 |