[PATCH 2/3] xfstests: Add new standard loop handling functions

Eric Sandeen sandeen at sandeen.net
Sun Feb 3 10:08:06 CST 2013


On 2/3/13 4:19 AM, Tomas Racek wrote:
> Add _create_loop_device and _destroy_loop_device to uniformly handle
> loopback devices.

Good idea, small comment below

> Signed-off-by: Tomas Racek <tracek at redhat.com>
> ---
>  common.rc | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/common.rc b/common.rc
> index 0cccb94..67a5e3a 100644
> --- a/common.rc
> +++ b/common.rc
> @@ -1833,6 +1833,20 @@ _require_dumpe2fs()
>  	fi
>  }
>  
> +_create_loop_device()
> +{
> +	file=$1
> +	dev=`losetup -f`
> +	losetup $dev $file || _fail "Cannot associate $file with $dev"
> +	echo $dev

In theory this is a little racy, right?  the loop device could become
used in between.

I wonder if something like:

_create_loop_device()
{
	dev=`losetup -f --show $file` || _fail "Cannot associate $file with $dev"
	echo $dev
}

would work better?  From the manpage:

       -f, --find
              find the first unused loop device. If a file argument is present,
               use this device. Otherwise, print its name

       --show print device name if the -f option and a file argument are present.

So this will set up the first available loop device and print its name.

Thanks,
-Eric	

> +}
> +
> +_destroy_loop_device()
> +{
> +	dev=$1
> +	losetup -d $dev || _fail "Cannot destroy loop device $dev"
> +}
> +
>  ################################################################################
>  
>  if [ "$iam" != new -a "$iam" != bench ]
> 



More information about the xfs mailing list