mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
_check_xfs_filesystem: sync fs before running scrub
Tests can create a scenario in which a call to syncfs() issued at the end of the execution of the test script would return an error code. xfs_scrub internally calls syncfs() before starting the actual online consistency check operation. Since this call to syncfs() fails, xfs_scrub ends up returning without performing consistency checks on the test filesystem. This can mask a possible on-disk data structure corruption. To fix the above stated problem, this commit invokes syncfs() prior to executing xfs_scrub. Suggested-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Allison Henderson <allison.henderson@oracle.com> Signed-off-by: Chandan Babu R <chandanrlinux@gmail.com>
This commit is contained in:
committed by
Eryu Guan
parent
9fb30a9500
commit
1066be0dd6
+11
@@ -503,6 +503,17 @@ _check_xfs_filesystem()
|
||||
# Run online scrub if we can.
|
||||
mntpt="$(_is_dev_mounted $device)"
|
||||
if [ -n "$mntpt" ] && _supports_xfs_scrub "$mntpt" "$device"; then
|
||||
# Tests can create a scenario in which a call to syncfs() issued
|
||||
# at the end of the execution of the test script would return an
|
||||
# error code. xfs_scrub internally calls syncfs() before
|
||||
# starting the actual online consistency check operation. Since
|
||||
# such a call to syncfs() fails, xfs_scrub ends up returning
|
||||
# without performing consistency checks on the test
|
||||
# filesystem. This can mask a possible on-disk data structure
|
||||
# corruption. Hence consume such a possible syncfs() failure
|
||||
# before executing a scrub operation.
|
||||
$XFS_IO_PROG -c syncfs $mntpt >> $seqres.full 2>&1
|
||||
|
||||
"$XFS_SCRUB_PROG" $scrubflag -v -d -n $mntpt > $tmp.scrub 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
_log_err "_check_xfs_filesystem: filesystem on $device failed scrub"
|
||||
|
||||
Reference in New Issue
Block a user