From: Darrick J. Wong <darrick.wong@xxxxxxxxxx> These four tests check that mmap'd cow writes fail when the filesystem goes down. For regular filesystems the msync reports EIO, but if quotas are enabled on xfs the write itself terminates xfs_io with a SIGBUS. We don't care how the write fails, so don't let the SIGBUS report escape to the golden output. Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --- tests/generic/279 | 6 ++++++ tests/generic/281 | 6 ++++++ tests/generic/282 | 9 ++++++++- tests/generic/283 | 14 ++++++++++---- 4 files changed, 30 insertions(+), 5 deletions(-) diff --git a/tests/generic/279 b/tests/generic/279 index 1355c641..af699144 100755 --- a/tests/generic/279 +++ b/tests/generic/279 @@ -66,8 +66,14 @@ md5sum $testdir/file2 | _filter_scratch echo "CoW and unmount" sync _dmerror_load_error_table +# Insulate ourselves against bash reporting the SIGBUS when we try to modify +# the metadata. +cat > $tmp.run << ENDL +ulimit -c 0 $XFS_IO_PROG -f -c "mmap -rw 0 $filesize" -c "mwrite -S 0x63 0 $filesize" \ -c "msync -s 0 $filesize" $testdir/file2 >> $seqres.full 2>&1 +ENDL +bash $tmp.run 2> /dev/null _dmerror_load_working_table _dmerror_unmount _dmerror_mount diff --git a/tests/generic/281 b/tests/generic/281 index 75c4b39a..75deab7c 100755 --- a/tests/generic/281 +++ b/tests/generic/281 @@ -66,8 +66,14 @@ md5sum $testdir/file2 | _filter_scratch echo "CoW and unmount" sync _dmerror_load_error_table +# Insulate ourselves against bash reporting the SIGBUS when we try to modify +# the metadata. +cat > $tmp.run << ENDL +ulimit -c 0 $XFS_IO_PROG -f -c "mmap -rw 0 $filesize" -c "mwrite -S 0x63 0 $filesize" \ -c "msync -s 0 $filesize" $testdir/file2 >> $seqres.full 2>&1 +ENDL +bash $tmp.run 2> /dev/null echo "Clean up the mess" _dmerror_unmount diff --git a/tests/generic/282 b/tests/generic/282 index aea7ce58..44ffe278 100755 --- a/tests/generic/282 +++ b/tests/generic/282 @@ -66,7 +66,14 @@ md5sum $testdir/file2 | _filter_scratch echo "CoW and unmount" sync _dmerror_load_error_table -$XFS_IO_PROG -f -c "mmap -rw 0 $filesize" -c "mwrite -S 0x63 0 $filesize" $testdir/file2 >> $seqres.full 2>&1 +# Insulate ourselves against bash reporting the SIGBUS when we try to modify +# the metadata. +cat > $tmp.run << ENDL +ulimit -c 0 +$XFS_IO_PROG -f -c "mmap -rw 0 $filesize" \ + -c "mwrite -S 0x63 0 $filesize" $testdir/file2 >> $seqres.full 2>&1 +ENDL +bash $tmp.run 2> /dev/null _dmerror_load_working_table rm -rf $testdir/file2 >> $seqres.full 2>&1 _dmerror_unmount diff --git a/tests/generic/283 b/tests/generic/283 index 79caddb5..84a1666a 100755 --- a/tests/generic/283 +++ b/tests/generic/283 @@ -67,10 +67,16 @@ md5sum $testdir/file2 | _filter_scratch echo "CoW and unmount" sync _dmerror_load_error_table -urk=$($XFS_IO_PROG -f -c "mmap -rw 0 $filesize" -c "mwrite -S 0x63 0 $filesize" \ - -c "msync -s 0 $filesize" $testdir/file2 2>&1) -echo $urk >> $seqres.full -echo "$urk" | grep -q "error" || _fail "mwrite did not fail" +# Insulate ourselves against bash reporting the SIGBUS when we try to modify +# the metadata. +cat > $tmp.run << ENDL +ulimit -c 0 +$XFS_IO_PROG -f -c "mmap -rw 0 $filesize" -c "mwrite -S 0x63 0 $filesize" \ + -c "msync -s 0 $filesize" $testdir/file2 2>&1 +ENDL +bash $tmp.run > $tmp.output 2>&1 +cat $tmp.output >> $seqres.full +grep -q error $tmp.output || _fail "mwrite did not fail" _dmerror_load_working_table echo "Rewrite" -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html