# check write journal of raid456 # test --detail test_detail_shows_journal() { mdadm -D $1 | grep journal || { echo >&2 "ERROR --detail does show journal device!"; mdadm -D $1 ; exit 1; } } # test --examine test_examine_shows_journal() { mdadm -E $1 | grep Journal || { echo >&2 "ERROR --examine does show Journal device!"; mdadm -E $1 ; exit 1; } } # test --create create_with_journal_and_stop() { mdadm -CR $md0 -l5 -n4 $dev0 $dev1 $dev2 $dev3 --write-journal $dev4 check wait tar cf - /etc > $md0 ./raid6check $md0 0 0 | grep 'Error detected' && exit 1 test_detail_shows_journal $md0 test_examine_shows_journal $dev4 mdadm -S $md0 } # test --assemble test_assemble() { create_with_journal_and_stop if mdadm -A $md0 $dev0 $dev1 $dev2 $dev3 then echo >&2 "ERROR should return 1 when journal is missing!"; cat /proc/mdstat ; exit 1; fi mdadm -S $md0 mdadm -A $md0 $dev0 $dev1 $dev2 $dev3 --force check readonly mdadm -S $md0 } # test --incremental test_incremental() { create_with_journal_and_stop for d in $dev0 $dev1 $dev2 $dev3 do mdadm -I $d done check inactive mdadm -I $dev4 check raid5 mdadm -S $md0 # test --incremental with journal missing for d in $dev0 $dev1 $dev2 $dev3 do mdadm -I $d done mdadm -R $md0 check readonly mdadm -S $md0 } create_with_journal_and_stop test_assemble test_incremental