| # 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 |