Re: [PATCH 1/3] xfs/108: allow slightly higher block usage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jun 06, 2023 at 03:29:08PM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@xxxxxxxxxx>
> 
> With pmem and fsdax enabled, I occasionally see this test fail on XFS:
> 
>    Mode: (0600/-rw-------)         Uid: (1)  Gid: (2)
>  Disk quotas for User #1 (1)
>  Filesystem Blocks Quota Limit Warn/Time Mounted on
> -SCRATCH_DEV 48M 0 0 00 [------] SCRATCH_MNT
> +SCRATCH_DEV 48.0M 0 0 00 [------] SCRATCH_MNT
>  Disk quotas for User #1 (1)
>  Filesystem Files Quota Limit Warn/Time Mounted on
>  SCRATCH_DEV 3 0 0 00 [------] SCRATCH_MNT
> 
> The cause of this failure is fragmentation in the file mappings that
> results in a block mapping structure that no longer fits in the inode.
> Hence the block usage is 49160K instead of the 49152K that was written.
> Use some fugly sed duct tape to make this test accomodate this
> possiblity.
> 
> Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx>

LGTM.
Reviewed-by: Bill O'Donnell <bodonnel@xxxxxxxxxx>

> ---
>  tests/xfs/108 |   14 +++++++++++---
>  1 file changed, 11 insertions(+), 3 deletions(-)
> 
> 
> diff --git a/tests/xfs/108 b/tests/xfs/108
> index 4607000544..8593edbdd2 100755
> --- a/tests/xfs/108
> +++ b/tests/xfs/108
> @@ -32,6 +32,14 @@ test_files()
>  	done
>  }
>  
> +# Some filesystem configurations fragment the file mapping more than others,
> +# which leads to the quota block counts being slightly higher than the 48MB
> +# written.
> +filter_quota()
> +{
> +	sed -e 's/48\.[01]M/48M/g' | _filter_quota
> +}
> +
>  test_accounting()
>  {
>  	echo "### some controlled buffered, direct and mmapd IO (type=$type)"
> @@ -49,9 +57,9 @@ test_accounting()
>  		$here/src/lstat64 $file | head -3 | _filter_scratch
>  	done
>  	$XFS_IO_PROG -c syncfs $SCRATCH_MNT
> -	$XFS_QUOTA_PROG -c "quota -hnb -$type $id" $QARGS | _filter_quota
> -	$XFS_QUOTA_PROG -c "quota -hni -$type $id" $QARGS | _filter_quota
> -	$XFS_QUOTA_PROG -c "quota -hnr -$type $id" $QARGS | _filter_quota
> +	$XFS_QUOTA_PROG -c "quota -hnb -$type $id" $QARGS | filter_quota
> +	$XFS_QUOTA_PROG -c "quota -hni -$type $id" $QARGS | filter_quota
> +	$XFS_QUOTA_PROG -c "quota -hnr -$type $id" $QARGS | filter_quota
>  }
>  
>  export MOUNT_OPTIONS="-opquota"
> 




[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux