From: Darrick J. Wong Date: Thu, 26 Oct 2017 05:51:39 +0000 (-0700) Subject: quota: clear speculative delalloc when checking quota usage X-Git-Tag: v2022.05.01~1814 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=148090c1c4400306c9077eb3eaaea18c61e15d5e;p=users%2Fhch%2Fxfstests-dev.git quota: clear speculative delalloc when checking quota usage Occasionally speculative preallocation kicks in when writing files to a filesystem under test. These preallocations consume quota and /usually/ aren't around after we drop_caches, but there's nothing to guarantee that they actually have, so the quota reports will be different before and after the fs remount, causing sporadic test failures in generic/{23[123],270}. We now have xfs_spaceman which can instruct XFS to forcibly remove the speculative preallocations. This fixes the sporadic failures, at least for XFS. Signed-off-by: Darrick J. Wong Reviewed-by: Eryu Guan Signed-off-by: Eryu Guan --- diff --git a/common/config b/common/config index 8844173f3..96503c67a 100644 --- a/common/config +++ b/common/config @@ -149,6 +149,7 @@ export XFS_LOGPRINT_PROG="`set_prog_path xfs_logprint`" export XFS_REPAIR_PROG="`set_prog_path xfs_repair`" export XFS_DB_PROG="`set_prog_path xfs_db`" export XFS_GROWFS_PROG=`set_prog_path xfs_growfs` +export XFS_SPACEMAN_PROG="`set_prog_path xfs_spaceman`" export XFS_SCRUB_PROG="`set_prog_path xfs_scrub`" export XFS_PARALLEL_REPAIR_PROG="`set_prog_path xfs_prepair`" export XFS_PARALLEL_REPAIR64_PROG="`set_prog_path xfs_prepair64`" diff --git a/common/quota b/common/quota index d027a8c11..2611c484e 100644 --- a/common/quota +++ b/common/quota @@ -267,6 +267,12 @@ _check_quota_usage() VFS_QUOTA=1 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 + ;; *) ;; esac