1*94c4a1e1SFrank Piva#!/bin/bash 2*94c4a1e1SFrank Piva# SPDX-License-Identifier: MIT or GPL-2.0-only 3*94c4a1e1SFrank Piva 4*94c4a1e1SFrank Piva. common/fio_common 5*94c4a1e1SFrank Piva. common/loop_common 6*94c4a1e1SFrank Piva. common/qcow2_common 7*94c4a1e1SFrank Piva. common/nbd_common 8*94c4a1e1SFrank Piva 9*94c4a1e1SFrank Pivaublk_run_mount_test() 10*94c4a1e1SFrank Piva{ 11*94c4a1e1SFrank Piva local dev=`__create_ublk_dev` 12*94c4a1e1SFrank Piva local mnt=$1 13*94c4a1e1SFrank Piva 14*94c4a1e1SFrank Piva ROOT_FSTYPE=`findmnt -l -o FSTYPE -n /` 15*94c4a1e1SFrank Piva echo -n -e "\tmount/umount $dev(ublk $T_TYPE_PARAMS) with fstype($ROOT_FSTYPE)..." 16*94c4a1e1SFrank Piva 17*94c4a1e1SFrank Piva 18*94c4a1e1SFrank Piva wipefs -a $dev > /dev/null 2>&1 19*94c4a1e1SFrank Piva eval mkfs.${ROOT_FSTYPE} $dev > /dev/null 2>&1 20*94c4a1e1SFrank Piva 21*94c4a1e1SFrank Piva mount $dev $mnt > /dev/null 2>&1 22*94c4a1e1SFrank Piva 23*94c4a1e1SFrank Piva UBLK_FSTYPE=`findmnt -l -o FSTYPE -n $mnt` 24*94c4a1e1SFrank Piva if [ "$UBLK_FSTYPE" = "$ROOT_FSTYPE" ]; then 25*94c4a1e1SFrank Piva echo "ok" 26*94c4a1e1SFrank Piva else 27*94c4a1e1SFrank Piva echo "failed" 28*94c4a1e1SFrank Piva fi 29*94c4a1e1SFrank Piva umount $mnt > /dev/null 2>&1 30*94c4a1e1SFrank Piva 31*94c4a1e1SFrank Piva __remove_ublk_dev $dev 32*94c4a1e1SFrank Piva} 33*94c4a1e1SFrank Piva 34*94c4a1e1SFrank Pivaublk_run_mount_type() 35*94c4a1e1SFrank Piva{ 36*94c4a1e1SFrank Piva local type=$1 37*94c4a1e1SFrank Piva local mnt=$2 38*94c4a1e1SFrank Piva local queues=1 39*94c4a1e1SFrank Piva local dev=/dev/ublkb0 40*94c4a1e1SFrank Piva 41*94c4a1e1SFrank Piva [ ${type} == "loop" ] && queues=2 42*94c4a1e1SFrank Piva 43*94c4a1e1SFrank Piva file=`_create_image $type "null" 1G` 44*94c4a1e1SFrank Piva 45*94c4a1e1SFrank Piva for NEED_GET_DATA in `seq 0 1`; do 46*94c4a1e1SFrank Piva if [ "$type" == "nbd" ]; then 47*94c4a1e1SFrank Piva export T_TYPE_PARAMS="-t $type -q $queues -g $NEED_GET_DATA -d 127 --host $NBDSRV" 48*94c4a1e1SFrank Piva else 49*94c4a1e1SFrank Piva export T_TYPE_PARAMS="-t $type -q $queues -g $NEED_GET_DATA -f $file" 50*94c4a1e1SFrank Piva fi 51*94c4a1e1SFrank Piva ublk_run_mount_test $mnt 52*94c4a1e1SFrank Piva done 53*94c4a1e1SFrank Piva _remove_image ${type} $file 54*94c4a1e1SFrank Piva} 55*94c4a1e1SFrank Piva 56*94c4a1e1SFrank PivaMNT=`mktemp -d` 57*94c4a1e1SFrank Piva 58*94c4a1e1SFrank Pivafor TYPE in "loop" "qcow2" "nbd"; do 59*94c4a1e1SFrank Piva ublk_run_mount_type $TYPE $MNT 60*94c4a1e1SFrank Pivadone 61*94c4a1e1SFrank Piva 62*94c4a1e1SFrank Pivarm -fr $MNT 63