test/mkfs: provide common function to create filesystem
There are tests which create a filesystem on a device. Each one could use a timeout and retries for each mkfs. Otherwise following error could appear due to not test related system activities: 'mkfs.xfs: cannot open /dev/sdb1: Device or resource busy' References #1141 Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Change-Id: I7307b085ada42200995d8bd2fcfd0469ee60a732 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1178 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Karol Latecki <karol.latecki@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com>
This commit is contained in:
parent
c7325e3fad
commit
0c7aeea925
@ -540,6 +540,29 @@ function waitforbdev() {
|
||||
return 1
|
||||
}
|
||||
|
||||
function make_filesystem() {
|
||||
local fstype=$1
|
||||
local dev_name=$2
|
||||
local i=0
|
||||
local force
|
||||
|
||||
if [ $fstype = ext4 ]; then
|
||||
force=-F
|
||||
else
|
||||
force=-f
|
||||
fi
|
||||
|
||||
while ! mkfs.${fstype} $force ${dev_name}; do
|
||||
if [ $i -ge 15 ]; then
|
||||
return 1
|
||||
fi
|
||||
i=$((i+1))
|
||||
sleep 1
|
||||
done
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
function killprocess() {
|
||||
# $1 = process pid
|
||||
if [ -z "$1" ]; then
|
||||
|
@ -66,7 +66,7 @@ waitfornbd nbd0
|
||||
$rpc_py save_config > $testdir/config/ftl.json
|
||||
|
||||
# Prepare the disk by creating ext4 fs and putting a file on it
|
||||
mkfs.ext4 -F /dev/nbd0
|
||||
make_filesystem ext4 /dev/nbd0
|
||||
mount /dev/nbd0 $mount_dir
|
||||
dd if=/dev/urandom of=$mount_dir/testfile bs=4K count=256K
|
||||
sync
|
||||
|
@ -51,8 +51,8 @@ $rpc_py bdev_error_inject_error EE_Malloc0 'all' 'failure' -n 1000
|
||||
dev=$(iscsiadm -m session -P 3 | grep "Attached scsi disk" | awk '{print $4}')
|
||||
|
||||
set +e
|
||||
waitforfile /dev/$dev
|
||||
if mkfs.ext4 -F /dev/$dev; then
|
||||
waitforfile /dev/${dev}
|
||||
if make_filesystem ext4 /dev/${dev}; then
|
||||
echo "mkfs successful - expected failure"
|
||||
iscsicleanup
|
||||
killprocess $pid
|
||||
@ -84,9 +84,9 @@ waitforiscsidevices 1
|
||||
devs=$(iscsiadm -m session -P 3 | grep "Attached scsi disk" | awk '{print $4}')
|
||||
|
||||
for dev in $devs; do
|
||||
mkfs.ext4 -F /dev/$dev
|
||||
make_filesystem ext4 /dev/${dev}
|
||||
mkdir -p /mnt/${dev}dir
|
||||
mount -o sync /dev/$dev /mnt/${dev}dir
|
||||
mount -o sync /dev/${dev} /mnt/${dev}dir
|
||||
|
||||
rsync -qav --exclude=".git" --exclude="*.o" $rootdir/ /mnt/${dev}dir/spdk
|
||||
|
||||
|
@ -78,11 +78,7 @@ sleep 1
|
||||
function filesystem_test {
|
||||
fstype=$1
|
||||
|
||||
if [ "$fstype" == "ext4" ]; then
|
||||
mkfs.${fstype} -F /dev/${dev}1
|
||||
else
|
||||
mkfs.${fstype} -f /dev/${dev}1
|
||||
fi
|
||||
make_filesystem ${fstype} /dev/${dev}1
|
||||
mount /dev/${dev}1 /mnt/device
|
||||
if [ $RUN_NIGHTLY -eq 1 ]; then
|
||||
fio -filename=/mnt/device/test -direct=1 -iodepth 64 -thread=1 -invalidate=1 -rw=randwrite -ioengine=libaio -bs=4k \
|
||||
|
@ -16,18 +16,7 @@ function nvmf_filesystem_create {
|
||||
fstype=$1
|
||||
nvme_name=$2
|
||||
|
||||
if [ $fstype = ext4 ]; then
|
||||
force=-F
|
||||
else
|
||||
force=-f
|
||||
fi
|
||||
|
||||
local i=0
|
||||
while ! mkfs.${fstype} $force /dev/${nvme_name}p1; do
|
||||
[ $i -lt 15 ] || break
|
||||
i=$((i+1))
|
||||
sleep 1
|
||||
done
|
||||
make_filesystem ${fstype} /dev/${nvme_name}p1
|
||||
|
||||
mount /dev/${nvme_name}p1 /mnt/device
|
||||
touch /mnt/device/aaa
|
||||
|
Loading…
Reference in New Issue
Block a user