diff options
author | Anthony Iliopoulos <ailiop@suse.com> | 2024-02-01 17:17:31 +0100 |
---|---|---|
committer | Zorro Lang <zlang@kernel.org> | 2024-03-01 19:24:16 +0800 |
commit | cc23dcb3ebe6fe6ab8307da183e660717eea38fc (patch) | |
tree | 259ff866768a4732b3a9b1827379858696e2a8e3 | |
parent | 8c9102789fecb8a393dfa6a7ee1390a26f262c62 (diff) | |
download | xfstests-dev-cc23dcb3ebe6fe6ab8307da183e660717eea38fc.tar.gz |
generic/68[12]: use the dir blocksize for xfs filesystems
The tests are using the filesystem block size for calculating the number
of dirents required to fill a 2-block directory. For v4 xfs filesystems
formatted with fs blocksize of 512 bytes this is failing, as the tests
do not take into account that the directory block size is not always
equal to the filesystem block size. As such, the tests never go over
quota, and even if they did there is no hard block limit being set (due
to 512 / 1024 = 0 calculation in setquota).
Use the directory blocksize instead of the filesystem blocksize, when
the fstype under test is xfs.
Signed-off-by: Anthony Iliopoulos <ailiop@suse.com>
Reviewed-by: Andrey Albershteyn <aalbersh@redhat.com>
Signed-off-by: Zorro Lang <zlang@kernel.org>
-rw-r--r-- | common/rc | 11 | ||||
-rwxr-xr-x | tests/generic/681 | 2 | ||||
-rwxr-xr-x | tests/generic/682 | 2 |
3 files changed, 13 insertions, 2 deletions
@@ -4756,6 +4756,17 @@ _get_block_size() stat -f -c %S $1 } +# Obtain the directory block size of an fs. +_get_dir_block_size() +{ + case "$FSTYP" in + xfs) + _xfs_get_dir_blocksize $1 ;; + *) + _get_block_size $1 ;; + esac +} + # Require that the fundamental allocation unit of a file is the same as the # filesystem block size. The sole parameter must be the root dir of a # filesystem. diff --git a/tests/generic/681 b/tests/generic/681 index 090da795ce..f41647741a 100755 --- a/tests/generic/681 +++ b/tests/generic/681 @@ -30,7 +30,7 @@ _scratch_mkfs > "$seqres.full" 2>&1 _qmount_option usrquota _qmount -blocksize=$(_get_block_size $SCRATCH_MNT) +blocksize=$(_get_dir_block_size $SCRATCH_MNT) scratchdir=$SCRATCH_MNT/dir scratchfile=$SCRATCH_MNT/file mkdir $scratchdir diff --git a/tests/generic/682 b/tests/generic/682 index b4cd0cd9dd..a51d183387 100755 --- a/tests/generic/682 +++ b/tests/generic/682 @@ -30,7 +30,7 @@ _scratch_mkfs > "$seqres.full" 2>&1 _qmount_option usrquota _qmount -blocksize=$(_get_block_size $SCRATCH_MNT) +blocksize=$(_get_dir_block_size $SCRATCH_MNT) scratchdir=$SCRATCH_MNT/dir scratchfile=$SCRATCH_MNT/file stagedir=$SCRATCH_MNT/staging |