Skip to contentSkip to conversation

xfstests mount options?

DISCUSSION Eric Biggers 3 participants 3 messages Oct 24, 2016 – Oct 27, 2016

lore
Share & tools
lore
#0 lore raw

Hi,

When starting xfstests without $TEST_DEV mounted, it mounts it using this command in _test_mount, called from init_rc:

_mount -t $FSTYP $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR

This is also used by _test_cycle_mount, which some tests use.

This is inconsistent with the later code in _check_generic_filesystem, called after each test, which remounts $TEST_DEV:

_mount_or_remount_rw "$MOUNT_OPTIONS" $device $mountpoint

It is possible to have mount options in $MOUNT_OPTIONS which then are *not* included in the options that _test_mount uses.

$TEST_FS_MOUNT_OPTS is also very strange in that it only appears to ever be set when testing CIFS.

Which version of the test device mount options is correct? Is it documented anywhere what is the correct way to configure the mount options used by xfstests?

Thanks,

Eric

#1 lore raw
Quoted 6 lines · Eric Biggers

Hi,

When starting xfstests without $TEST_DEV mounted, it mounts it using this command in _test_mount, called from init_rc:

_mount -t $FSTYP $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR

In my understanding, TEST_FS_MOUNT_OPTS is used for TEST_DEV, as MOUNT_OPTIONS is used for SCRATCH_DEV.

Looking through the git history, TEST_FS_MOUNT_OPTS was introduced by commit ab526a6 in 2006 without any documents. It replaced MOUNT_OPTIONS in _test_mount(). So I think its intention is used as mount options for TEST_DEV.

Quoted 7 lines

This is also used by _test_cycle_mount, which some tests use.

This is inconsistent with the later code in _check_generic_filesystem, called after each test, which remounts $TEST_DEV:

_mount_or_remount_rw "$MOUNT_OPTIONS" $device $mountpoint

_check_generic_filesystem is used in both _check_test_fs() and _check_scratch_fs(), I think it should use different mount options based on which device it's checking, not use MOUNT_OPTIONS always.

And there's another inconsistency in _require_test()

out=_mount_or_remount_rw "$MOUNT_OPTIONS" $TEST_DEV $TEST_DIR

We should use TEST_FS_MOUNT_OPTS here, because we know we're working on TEST_DEV in this function.

Quoted 6 lines

It is possible to have mount options in $MOUNT_OPTIONS which then are *not* included in the options that _test_mount uses.

$TEST_FS_MOUNT_OPTS is also very strange in that it only appears to ever be set when testing CIFS.

Only CIFS set both TEST_FS_MOUNT_OPTS and MOUNT_OPTIONS to CIFS_MOUNT_OPTIONS, that means for cifs it's not possible to use different mount options for TEST_DEV and SCRATCH_DEV if you have CIFS_MOUNT_OPTIONS set.

Thanks,
Eryu

Quoted 12 lines

Which version of the test device mount options is correct? Is it documented anywhere what is the correct way to configure the mount options used by xfstests?

Thanks,

Eric
--
To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#2 lore raw
Quoted 20 lines · Eryu Guan
Quoted 6 lines · Eric Biggers

Hi,

When starting xfstests without $TEST_DEV mounted, it mounts it using this command in _test_mount, called from init_rc:

_mount -t $FSTYP $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $SELINUX_MOUNT_OPTIONS $* $TEST_DEV $TEST_DIR

In my understanding, TEST_FS_MOUNT_OPTS is used for TEST_DEV, as MOUNT_OPTIONS is used for SCRATCH_DEV.

Looking through the git history, TEST_FS_MOUNT_OPTS was introduced by commit ab526a6 in 2006 without any documents. It replaced MOUNT_OPTIONS in _test_mount(). So I think its intention is used as mount options for TEST_DEV.

Quoted 3 lines

This is also used by _test_cycle_mount, which some tests use.

Quoted 8 lines
Quoted 4 lines

This is inconsistent with the later code in _check_generic_filesystem, called after each test, which remounts $TEST_DEV:

_mount_or_remount_rw "$MOUNT_OPTIONS" $device $mountpoint

_check_generic_filesystem is used in both _check_test_fs() and _check_scratch_fs(), I think it should use different mount options based on which device it's checking, not use MOUNT_OPTIONS always.

Right - we have _scratch_mount_options() for returning the configured mount options for a scratch device. We should extract a similar helper out of _test_mount(), and use them appropriately where necessary.

i.e. nothing should really be using $MOUNT_OPTIONS or $TEST_FS_MOUNT_OPTS directly - they should always get them from the _scratch_mount_options/_test_mount_options functions...

Cheers,

Dave.

Signature · 2 lines
Dave Chinner
[email protected]