From: Lukas Czerner Date: Tue, 14 Oct 2014 06:07:52 +0000 (+1100) Subject: common: Introduce get_block_size() helper X-Git-Tag: v2022.05.01~3051 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=a2a1fc679e6833901107785260757beabf8004c0;p=xfstests-dev.git common: Introduce get_block_size() helper Currently many tests and other functions uses it's own way to get block size of the file system. Introduce get_block_size(), a generic way to get block size of mounted file system and use that instead. Signed-off-by: Lukas Czerner Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner --- diff --git a/common/attr b/common/attr index f33166e5..48c81ccf 100644 --- a/common/attr +++ b/common/attr @@ -249,7 +249,7 @@ _sort_getfattr_output() if [ "$FSTYP" == "xfs" -o "$FSTYP" == "udf" ]; then MAX_ATTRS=1000 else # Assume max ~1 block of attrs - BLOCK_SIZE=`stat -f $TEST_DIR | grep "Block size" | cut -d " " -f3` + BLOCK_SIZE=`get_block_size $TEST_DIR` # user.attribute_XXX="value.XXX" is about 32 bytes; leave some overhead let MAX_ATTRS=$BLOCK_SIZE/40 fi @@ -260,7 +260,7 @@ export MAX_ATTRS if [ "$FSTYP" == "xfs" -o "$FSTYP" == "udf" -o "$FSTYP" == "btrfs" ]; then MAX_ATTRVAL_SIZE=64 else # Assume max ~1 block of attrs - BLOCK_SIZE=`stat -f $TEST_DIR | grep "Block size" | cut -d " " -f3` + BLOCK_SIZE=`get_block_size $TEST_DIR` # leave a little overhead let MAX_ATTRVAL_SIZE=$BLOCK_SIZE-256 fi diff --git a/common/punch b/common/punch index f2d538c1..237b4d88 100644 --- a/common/punch +++ b/common/punch @@ -557,7 +557,7 @@ _test_generic_punch() if [ "$remove_testfile" ]; then rm -f $testfile fi - block_size=`stat -f $TEST_DIR | grep "Block size" | cut -d " " -f3` + block_size=`get_block_size $TEST_DIR` $XFS_IO_PROG -f -c "truncate $block_size" \ -c "pwrite 0 $block_size" $sync_cmd \ -c "$zero_cmd 128 128" \ diff --git a/common/rc b/common/rc index 34d7c19b..59ce2dba 100644 --- a/common/rc +++ b/common/rc @@ -2542,6 +2542,15 @@ _short_dev() echo `basename $(_real_dev $1)` } +get_block_size() +{ + if [ -z $1 ] || [ ! -d $1 ]; then + echo "Missing mount point argument for get_block_size" + exit 1 + fi + echo `stat -f -c %S $1` +} + init_rc ################################################################################ diff --git a/tests/generic/240 b/tests/generic/240 index c063dd48..e32f15ae 100755 --- a/tests/generic/240 +++ b/tests/generic/240 @@ -62,7 +62,7 @@ rm -f $seqres.full rm -f $TEST_DIR/aiodio_sparse logical_block_size=`_min_dio_alignment $TEST_DEV` -fs_block_size=`stat -f $TEST_DIR | grep "Block size:" | awk '{print $3}'` +fs_block_size=`get_block_size $TEST_DIR` file_size=$((8 * $fs_block_size)) if [ $fs_block_size -le $logical_block_size ]; then diff --git a/tests/generic/256 b/tests/generic/256 index 8ee8aacc..086c00a1 100755 --- a/tests/generic/256 +++ b/tests/generic/256 @@ -171,7 +171,7 @@ _scratch_mount # Test must be able to write files with non-root permissions chmod 777 $SCRATCH_MNT -block_size=`stat -f $SCRATCH_DEV | grep "Block size" | cut -d " " -f3` +block_size=`get_block_size $SCRATCH_MNT` _test_full_fs_punch $(( $block_size * 2 )) $block_size 500 $SCRATCH_MNT/252.$$ $block_size status=0 ; exit diff --git a/tests/generic/308 b/tests/generic/308 index 418dbf27..e639da1f 100755 --- a/tests/generic/308 +++ b/tests/generic/308 @@ -49,7 +49,7 @@ _require_test rm -f $seqres.full echo "Silence is golden" -block_size=`stat -f -c %s $TEST_DIR` +block_size=`get_block_size $TEST_DIR` # On unpatched ext4, if an extent exists which includes the block right # before the maximum file offset, and the block for the maximum file offset diff --git a/tests/shared/298 b/tests/shared/298 index 2b7fdd1a..2ed7eabb 100755 --- a/tests/shared/298 +++ b/tests/shared/298 @@ -165,7 +165,7 @@ echo "done." echo -n "Comparing holes to the reported space from FS..." # Get block size -block_size=$(stat -f -c "%S" $loop_mnt/) +block_size=$(get_block_size $loop_mnt/) sectors_per_block=`expr $block_size / 512` # Obtain free space from filesystem