quota: clean out speculative preallocations when checking quota usage

On XFS, the only reliable way to clean out speculative post-eof
preallocations, delayed allocations, and speculative cow preallocations
is to cycle the filesystem mount.  Since we're comparing the post-test
quota counts against a freshly quotacheck to look for leaks, it's fine
to cycle the mount.  This eliminates sporadic quota count failures when
running xfstests with quotas enabled.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This commit is contained in:
Darrick J. Wong
2018-11-01 16:19:09 -07:00
committed by Eryu Guan
parent a8d2e332b0
commit a0e085215e
+4 -4
View File
@@ -260,10 +260,10 @@ _check_quota_usage()
quotaon -f -u -g $SCRATCH_MNT 2>/dev/null
;;
xfs)
# Clear out speculative preallocations to eliminate them
# as a source of intermittent orig/checked differences.
test -x "$XFS_SPACEMAN_PROG" && \
"$XFS_SPACEMAN_PROG" -c 'prealloc -s' $SCRATCH_MNT
# Only way to make this reliable with cow/delalloc/speculative
# preallocations is to unmount and remount the whole mess...
_scratch_unmount
_scratch_mount "-o usrquota,grpquota"
;;
*)
;;