Message ID | 166697891959.4183768.4250658285402219552.stgit@magnolia (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | fstests: refactor xfs geometry computation | expand |
On Fri, Oct 28, 2022 at 10:41:59AM -0700, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > There are a lot of places where we open-code determining the directory > block size for a specific filesystem. Refactor this into a single > helper to clean up existing tests. > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> > --- Good to me, Reviewed-by: Zorro Lang <zlang@redhat.com> > common/populate | 4 ++-- > common/xfs | 9 +++++++++ > tests/xfs/099 | 2 +- > tests/xfs/100 | 2 +- > tests/xfs/101 | 2 +- > tests/xfs/102 | 2 +- > tests/xfs/105 | 2 +- > tests/xfs/112 | 2 +- > tests/xfs/113 | 2 +- > 9 files changed, 18 insertions(+), 9 deletions(-) > > > diff --git a/common/populate b/common/populate > index 9fa1a06798..23b2fecf69 100644 > --- a/common/populate > +++ b/common/populate > @@ -175,7 +175,7 @@ _scratch_xfs_populate() { > _xfs_force_bdev data $SCRATCH_MNT > > blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" > - dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" > + dblksz="$(_xfs_get_dir_blocksize "$SCRATCH_MNT")" > crc="$(_xfs_has_feature "$SCRATCH_MNT" crc -v)" > if [ $crc -eq 1 ]; then > leaf_hdr_size=64 > @@ -602,7 +602,7 @@ _scratch_xfs_populate_check() { > is_reflink=$(_xfs_has_feature "$SCRATCH_MNT" reflink -v) > > blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" > - dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" > + dblksz="$(_xfs_get_dir_blocksize "$SCRATCH_MNT")" > leaf_lblk="$((32 * 1073741824 / blksz))" > node_lblk="$((64 * 1073741824 / blksz))" > umount "${SCRATCH_MNT}" > diff --git a/common/xfs b/common/xfs > index b2ac78de0c..9b6575b5f2 100644 > --- a/common/xfs > +++ b/common/xfs > @@ -194,6 +194,15 @@ _xfs_get_file_block_size() > $XFS_INFO_PROG "$path" | grep realtime | sed -e 's/^.*extsz=\([0-9]*\).*$/\1/g' > } > > +# Get the directory block size of a mounted filesystem. > +_xfs_get_dir_blocksize() > +{ > + local fs="$1" > + > + $XFS_INFO_PROG "$fs" | grep 'naming.*bsize' | \ > + sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g' > +} > + > # Set or clear the realtime status of every supplied path. The first argument > # is either 'data' or 'realtime'. All other arguments should be paths to > # existing directories or empty regular files. > diff --git a/tests/xfs/099 b/tests/xfs/099 > index a7eaff6e0c..82bef8ad26 100755 > --- a/tests/xfs/099 > +++ b/tests/xfs/099 > @@ -37,7 +37,7 @@ _scratch_mkfs_xfs > /dev/null > > echo "+ mount fs image" > _scratch_mount > -dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" > +dblksz=$(_xfs_get_dir_blocksize "$SCRATCH_MNT") > nr="$((dblksz / 40))" > blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" > leaf_lblk="$((32 * 1073741824 / blksz))" > diff --git a/tests/xfs/100 b/tests/xfs/100 > index 79da8cb02c..e638b4ba17 100755 > --- a/tests/xfs/100 > +++ b/tests/xfs/100 > @@ -37,7 +37,7 @@ _scratch_mkfs_xfs > /dev/null > > echo "+ mount fs image" > _scratch_mount > -dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" > +dblksz=$(_xfs_get_dir_blocksize "$SCRATCH_MNT") > nr="$((dblksz / 12))" > blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" > leaf_lblk="$((32 * 1073741824 / blksz))" > diff --git a/tests/xfs/101 b/tests/xfs/101 > index 64f4705aca..11ed329110 100755 > --- a/tests/xfs/101 > +++ b/tests/xfs/101 > @@ -37,7 +37,7 @@ _scratch_mkfs_xfs > /dev/null > > echo "+ mount fs image" > _scratch_mount > -dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" > +dblksz=$(_xfs_get_dir_blocksize "$SCRATCH_MNT") > nr="$((dblksz / 12))" > blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" > leaf_lblk="$((32 * 1073741824 / blksz))" > diff --git a/tests/xfs/102 b/tests/xfs/102 > index 24dce43058..43f4539181 100755 > --- a/tests/xfs/102 > +++ b/tests/xfs/102 > @@ -37,7 +37,7 @@ _scratch_mkfs_xfs > /dev/null > > echo "+ mount fs image" > _scratch_mount > -dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" > +dblksz=$(_xfs_get_dir_blocksize "$SCRATCH_MNT") > nr="$((16 * dblksz / 40))" > blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" > leaf_lblk="$((32 * 1073741824 / blksz))" > diff --git a/tests/xfs/105 b/tests/xfs/105 > index 22a8bf9fb0..002a712883 100755 > --- a/tests/xfs/105 > +++ b/tests/xfs/105 > @@ -37,7 +37,7 @@ _scratch_mkfs_xfs > /dev/null > > echo "+ mount fs image" > _scratch_mount > -dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" > +dblksz=$(_xfs_get_dir_blocksize "$SCRATCH_MNT") > nr="$((16 * dblksz / 40))" > blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" > leaf_lblk="$((32 * 1073741824 / blksz))" > diff --git a/tests/xfs/112 b/tests/xfs/112 > index bc1ab62895..e2d5932da6 100755 > --- a/tests/xfs/112 > +++ b/tests/xfs/112 > @@ -37,7 +37,7 @@ _scratch_mkfs_xfs > /dev/null > > echo "+ mount fs image" > _scratch_mount > -dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" > +dblksz=$(_xfs_get_dir_blocksize "$SCRATCH_MNT") > nr="$((16 * dblksz / 40))" > blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" > leaf_lblk="$((32 * 1073741824 / blksz))" > diff --git a/tests/xfs/113 b/tests/xfs/113 > index e820ed96da..9bb2cd304b 100755 > --- a/tests/xfs/113 > +++ b/tests/xfs/113 > @@ -37,7 +37,7 @@ _scratch_mkfs_xfs > /dev/null > > echo "+ mount fs image" > _scratch_mount > -dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" > +dblksz=$(_xfs_get_dir_blocksize "$SCRATCH_MNT") > nr="$((128 * dblksz / 40))" > blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" > leaf_lblk="$((32 * 1073741824 / blksz))" >
diff --git a/common/populate b/common/populate index 9fa1a06798..23b2fecf69 100644 --- a/common/populate +++ b/common/populate @@ -175,7 +175,7 @@ _scratch_xfs_populate() { _xfs_force_bdev data $SCRATCH_MNT blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" - dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" + dblksz="$(_xfs_get_dir_blocksize "$SCRATCH_MNT")" crc="$(_xfs_has_feature "$SCRATCH_MNT" crc -v)" if [ $crc -eq 1 ]; then leaf_hdr_size=64 @@ -602,7 +602,7 @@ _scratch_xfs_populate_check() { is_reflink=$(_xfs_has_feature "$SCRATCH_MNT" reflink -v) blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" - dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" + dblksz="$(_xfs_get_dir_blocksize "$SCRATCH_MNT")" leaf_lblk="$((32 * 1073741824 / blksz))" node_lblk="$((64 * 1073741824 / blksz))" umount "${SCRATCH_MNT}" diff --git a/common/xfs b/common/xfs index b2ac78de0c..9b6575b5f2 100644 --- a/common/xfs +++ b/common/xfs @@ -194,6 +194,15 @@ _xfs_get_file_block_size() $XFS_INFO_PROG "$path" | grep realtime | sed -e 's/^.*extsz=\([0-9]*\).*$/\1/g' } +# Get the directory block size of a mounted filesystem. +_xfs_get_dir_blocksize() +{ + local fs="$1" + + $XFS_INFO_PROG "$fs" | grep 'naming.*bsize' | \ + sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g' +} + # Set or clear the realtime status of every supplied path. The first argument # is either 'data' or 'realtime'. All other arguments should be paths to # existing directories or empty regular files. diff --git a/tests/xfs/099 b/tests/xfs/099 index a7eaff6e0c..82bef8ad26 100755 --- a/tests/xfs/099 +++ b/tests/xfs/099 @@ -37,7 +37,7 @@ _scratch_mkfs_xfs > /dev/null echo "+ mount fs image" _scratch_mount -dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" +dblksz=$(_xfs_get_dir_blocksize "$SCRATCH_MNT") nr="$((dblksz / 40))" blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" leaf_lblk="$((32 * 1073741824 / blksz))" diff --git a/tests/xfs/100 b/tests/xfs/100 index 79da8cb02c..e638b4ba17 100755 --- a/tests/xfs/100 +++ b/tests/xfs/100 @@ -37,7 +37,7 @@ _scratch_mkfs_xfs > /dev/null echo "+ mount fs image" _scratch_mount -dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" +dblksz=$(_xfs_get_dir_blocksize "$SCRATCH_MNT") nr="$((dblksz / 12))" blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" leaf_lblk="$((32 * 1073741824 / blksz))" diff --git a/tests/xfs/101 b/tests/xfs/101 index 64f4705aca..11ed329110 100755 --- a/tests/xfs/101 +++ b/tests/xfs/101 @@ -37,7 +37,7 @@ _scratch_mkfs_xfs > /dev/null echo "+ mount fs image" _scratch_mount -dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" +dblksz=$(_xfs_get_dir_blocksize "$SCRATCH_MNT") nr="$((dblksz / 12))" blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" leaf_lblk="$((32 * 1073741824 / blksz))" diff --git a/tests/xfs/102 b/tests/xfs/102 index 24dce43058..43f4539181 100755 --- a/tests/xfs/102 +++ b/tests/xfs/102 @@ -37,7 +37,7 @@ _scratch_mkfs_xfs > /dev/null echo "+ mount fs image" _scratch_mount -dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" +dblksz=$(_xfs_get_dir_blocksize "$SCRATCH_MNT") nr="$((16 * dblksz / 40))" blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" leaf_lblk="$((32 * 1073741824 / blksz))" diff --git a/tests/xfs/105 b/tests/xfs/105 index 22a8bf9fb0..002a712883 100755 --- a/tests/xfs/105 +++ b/tests/xfs/105 @@ -37,7 +37,7 @@ _scratch_mkfs_xfs > /dev/null echo "+ mount fs image" _scratch_mount -dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" +dblksz=$(_xfs_get_dir_blocksize "$SCRATCH_MNT") nr="$((16 * dblksz / 40))" blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" leaf_lblk="$((32 * 1073741824 / blksz))" diff --git a/tests/xfs/112 b/tests/xfs/112 index bc1ab62895..e2d5932da6 100755 --- a/tests/xfs/112 +++ b/tests/xfs/112 @@ -37,7 +37,7 @@ _scratch_mkfs_xfs > /dev/null echo "+ mount fs image" _scratch_mount -dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" +dblksz=$(_xfs_get_dir_blocksize "$SCRATCH_MNT") nr="$((16 * dblksz / 40))" blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" leaf_lblk="$((32 * 1073741824 / blksz))" diff --git a/tests/xfs/113 b/tests/xfs/113 index e820ed96da..9bb2cd304b 100755 --- a/tests/xfs/113 +++ b/tests/xfs/113 @@ -37,7 +37,7 @@ _scratch_mkfs_xfs > /dev/null echo "+ mount fs image" _scratch_mount -dblksz="$($XFS_INFO_PROG "${SCRATCH_MNT}" | grep naming.*bsize | sed -e 's/^.*bsize=//g' -e 's/\([0-9]*\).*$/\1/g')" +dblksz=$(_xfs_get_dir_blocksize "$SCRATCH_MNT") nr="$((128 * dblksz / 40))" blksz="$(stat -f -c '%s' "${SCRATCH_MNT}")" leaf_lblk="$((32 * 1073741824 / blksz))"