[LTP] [PATCH v6, 1/4] lib: tst_umount: umount a mount point instead of a device

Petr Vorel pvorel@suse.cz
Mon Aug 23 15:48:12 CEST 2021


> Current check inside tst_umount for whehter a device is mounted is ambiguous.
> Fix it by checking for the existance of the exact mount point the fs is mounted upon,
> and use the mount point instead of the device to do the umount process.
> This patch make tst_umount umount TST_MNTPOINT by default,
> and reject any argument that does not start with '/'.

> Signed-off-by: Leo Yu-Chi Liang <ycliang@andestech.com>
> ---
>  testcases/lib/tst_test.sh | 18 +++++++++++-------
>  1 file changed, 11 insertions(+), 7 deletions(-)

> diff --git a/testcases/lib/tst_test.sh b/testcases/lib/tst_test.sh
> index c6aa2c487..1060bda2f 100644
> --- a/testcases/lib/tst_test.sh
> +++ b/testcases/lib/tst_test.sh
> @@ -277,31 +277,35 @@ tst_mount()

>  tst_umount()
>  {
> -	local device="${1:-$TST_DEVICE}"
> +	local mntpoint="${1:-$TST_MNTPOINT}"
>  	local i=0

> -	[ -z "$device" ] && return
> +	[ -z "$mntpoint" ] && return

> -	if ! grep -q "$device" /proc/mounts; then
> -		tst_res TINFO "The $device is not mounted, skipping umount"
> +	if [[ "$mntpoint" != /* ]]; then
[[ ]] is a bashism, it cannot be used. [1]
Instead grep must be used to compare regex:

if echo "$mntpoint" |grep -q ^/; then

This can be changed during merge.

Reviewed-by: Petr Vorel <pvorel@suse.cz>

[1] https://github.com/linux-test-project/ltp/wiki/Test-Writing-Guidelines#22-shell-coding-style

> +		tst_brk TCONF "The $mntpoint is not an absolute path"
> +	fi
> +
> +	if ! grep -q "${mntpoint%/}" /proc/mounts; then
> +		tst_res TINFO "The $mntpoint is not mounted upon, skipping umount"
>  		return
>  	fi

>  	while [ "$i" -lt 50 ]; do
> -		if umount "$device" > /dev/null; then
> +		if umount "$mntpoint" > /dev/null; then
>  			return
>  		fi

>  		i=$((i+1))

> -		tst_res TINFO "umount($device) failed, try $i ..."
> +		tst_res TINFO "umount($mntpoint) failed, try $i ..."
>  		tst_res TINFO "Likely gvfsd-trash is probing newly mounted "\
>  		              "fs, kill it to speed up tests."

>  		tst_sleep 100ms
>  	done

> -	tst_res TWARN "Failed to umount($device) after 50 retries"
> +	tst_res TWARN "Failed to umount($mntpoint) after 50 retries"
>  }

>  tst_mkfs()


More information about the ltp mailing list