On Fri, Apr 03, 2020 at 10:10:43AM +0800, Anand Jain wrote:
> The mount fails with 'file exists' error. Fix it by providing the device
> name.
>
> $ make TEST=029\* test-misc
> [TEST] misc-tests.sh
> [TEST/misc] 029-send-p-different-mountpoints
> failed: mount -t btrfs -o subvol=subv1 /btrfs-progs/tests//test.img /btrfs-progs/tests/misc-tests/029-send-p-different-mountpoints/subvol_mnt
> test failed for case 029-send-p-different-mountpoints
> make: *** [test-misc] Error 1
>
> ====== RUN CHECK mount -t btrfs -o subvol=subv1
> /btrfs-progs/tests//test.img
> /btrfs-progs/tests/misc-tests/029-send-p-different-mountpoints/subvol_mnt
> mount: mount /dev/loop1 on
> /btrfs-progs/tests/misc-tests/029-send-p-different-mountpoints/subvol_mnt
> failed: File exists
> failed: mount -t btrfs -o subvol=subv1 /btrfs-progs/tests//test.img
> /btrfs-progs/tests/misc-tests/029-send-p-different-mountpoints/subvol_mnt
> test failed for case 029-send-p-different-mountpoints
>
> Signed-off-by: Anand Jain <anand.jain@xxxxxxxxxx>
> ---
> v2: use readlink to sanitize the TEST_DEV path
> v3: readlink for TEST_DEV is not needed drop it
>
> tests/misc-tests/029-send-p-different-mountpoints/test.sh | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/tests/misc-tests/029-send-p-different-mountpoints/test.sh b/tests/misc-tests/029-send-p-different-mountpoints/test.sh
> index a478b3d26495..b05e4172ca0f 100755
> --- a/tests/misc-tests/029-send-p-different-mountpoints/test.sh
> +++ b/tests/misc-tests/029-send-p-different-mountpoints/test.sh
> @@ -20,7 +20,8 @@ run_check_mkfs_test_dev
> run_check_mount_test_dev
>
> run_check $SUDO_HELPER "$TOP/btrfs" subvolume create "$TEST_MNT/subv1"
> -run_check $SUDO_HELPER mount -t btrfs -o subvol=subv1 "$TEST_DEV" "$SUBVOL_MNT"
> +lodev=$(losetup | grep ${TEST_DEV} | awk '{print $1}')
> +run_check $SUDO_HELPER mount -t btrfs -o subvol=subv1 "$lodev" "$SUBVOL_MNT"
The test dev is not necessarily a loop device, yes by default it is, but
TEST_DEV can be set externally.
I still wonder why the test fails for you because it does not for me and
without more information it's not clear what is mount reporting as
'File exists', which is EEXIST.