mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
common: new function to get real device path name and basename
If TEST_DEV or SCRATCH_DEV is symlink(mostly a lvm lv), a simple basename is not enough, symlink should be followed. This task is common enough, so introduce new helper functions and replace all readlink calls in ext4/305 generic/009 generic/019 generic/285 generic/312 Signed-off-by: Eryu Guan <eguan@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
@@ -2190,6 +2190,22 @@ init_rc()
|
||||
export XFS_IO_PROG="$XFS_IO_PROG -F"
|
||||
}
|
||||
|
||||
# get real device path name by following link
|
||||
_real_dev()
|
||||
{
|
||||
local _dev=$1
|
||||
if [ -b "$_dev" ] && [ -L "$_dev" ]; then
|
||||
_dev=`readlink -f "$_dev"`
|
||||
fi
|
||||
echo $_dev
|
||||
}
|
||||
|
||||
# basename of a device
|
||||
_short_dev()
|
||||
{
|
||||
echo `basename $(_real_dev $1)`
|
||||
}
|
||||
|
||||
init_rc
|
||||
|
||||
################################################################################
|
||||
|
||||
+1
-1
@@ -49,7 +49,7 @@ _require_scratch
|
||||
rm -f $seqres.full
|
||||
echo "Silence is golden"
|
||||
|
||||
DEV_BASENAME=$(basename $(readlink -f $SCRATCH_DEV))
|
||||
DEV_BASENAME=$(_short_dev $SCRATCH_DEV)
|
||||
echo "Start test on device $SCRATCH_DEV, basename $DEV_BASENAME" >$seqres.full
|
||||
_scratch_mkfs >>$seqres.full 2>&1
|
||||
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ testfile=$TEST_DIR/009.$$
|
||||
|
||||
# Disable extent zeroing for ext4 as that change where holes are created
|
||||
if [ "$FSTYP" = "ext4" ]; then
|
||||
DEV=`basename $TEST_DEV`
|
||||
DEV=`_short_dev $TEST_DEV`
|
||||
echo 0 >/sys/fs/ext4/$DEV/extent_max_zeroout_kb
|
||||
fi
|
||||
|
||||
|
||||
+1
-3
@@ -41,9 +41,7 @@ _need_to_be_root
|
||||
_require_scratch
|
||||
_require_fail_make_request
|
||||
|
||||
# TODO: Function are common enough to be moved to common/blkdev
|
||||
SCRATCH_REAL_DEV=`readlink -f $SCRATCH_DEV`
|
||||
SCRATCH_BDEV=`basename $SCRATCH_REAL_DEV`
|
||||
SCRATCH_BDEV=`_short_dev $SCRATCH_DEV`
|
||||
|
||||
allow_fail_make_request()
|
||||
{
|
||||
|
||||
+1
-1
@@ -48,7 +48,7 @@ BASE_TEST_FILE=$TEST_DIR/seek_sanity_testfile
|
||||
|
||||
# Disable extent zeroing for ext4 as that change where holes are created
|
||||
if [ "$FSTYP" = "ext4" ]; then
|
||||
DEV=`basename $TEST_DEV`
|
||||
DEV=`_short_dev $TEST_DEV`
|
||||
echo 0 >/sys/fs/ext4/$DEV/extent_max_zeroout_kb
|
||||
fi
|
||||
|
||||
|
||||
+1
-1
@@ -52,7 +52,7 @@ _require_scratch
|
||||
# 5G in byte
|
||||
fssize=$((2**30 * 5))
|
||||
required_blocks=$(($fssize / 1024))
|
||||
dev_blocks=$(grep $(basename $(readlink -f $SCRATCH_DEV)) /proc/partitions | $AWK_PROG '{print $3}')
|
||||
dev_blocks=$(grep $(_short_dev $SCRATCH_DEV) /proc/partitions | $AWK_PROG '{print $3}')
|
||||
if [ $required_blocks -gt $dev_blocks ];then
|
||||
_notrun "this test requires \$SCRATCH_DEV has ${fssize}B space"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user