[LTP] [PATCH 1/1] fsconfig03: Skip on FUSE
Wei Gao
wegao@suse.com
Wed Mar 29 13:58:50 CEST 2023
On Tue, Mar 28, 2023 at 04:40:31PM +0200, Petr Vorel wrote:
> fsconfig03 is broken not only on vfat and ntfs, but also over FUSE:
>
> tst_supported_fs_types.c:120: TINFO: FUSE does support exfat
I have a question on function has_kernel_support.
If has_kernel_support start check exfat file system, if exfat not exist then start
check fuse, i have no idea why we still need check fuse, i suppose directly
return "exfat not support" instead of "FUSE does support exfat".
static enum tst_fs_impl has_kernel_support(const char *fs_type)
{
...
snprintf(template, sizeof(template), "%s/mountXXXXXX", tmpdir);
if (!mkdtemp(template))
tst_brk(TBROK | TERRNO, "mkdtemp(%s) failed", template);
ret = mount("/dev/zero", template, fs_type, 0, NULL);
if ((ret && errno != ENODEV) || !ret) {
if (!ret)
tst_umount(template);
tst_res(TINFO, "Kernel supports %s", fs_type);
SAFE_RMDIR(template);
return TST_FS_KERNEL;
}
SAFE_RMDIR(template);
/* Is FUSE supported by kernel? */ /////////start check fuse???
if (fuse_supported == -1) {
ret = open("/dev/fuse", O_RDWR);
if (ret < 0) {
fuse_supported = 0;
} else {
fuse_supported = 1;
SAFE_CLOSE(ret);
> tst_supported_fs_types.c:55: TINFO: mkfs.exfat does exist
> ...
> tst_test.c:1634: TINFO: === Testing on exfat ===
> tst_test.c:1093: TINFO: Formatting /dev/loop0 with exfat opts='' extra opts=''
> fsconfig03.c:38: TBROK: fsopen() failed: ENODEV (19)
>
> NOTE: it actually works on vfat which is not over FUSE:
> tst_supported_fs_types.c:90: TINFO: Kernel supports vfat
> tst_supported_fs_types.c:55: TINFO: mkfs.vfat does exist
> ...
> tst_test.c:1634: TINFO: === Testing on vfat ===
> tst_test.c:1093: TINFO: Formatting /dev/loop0 with vfat opts='' extra opts=''
> fsconfig03.c:72: TPASS: kernel seems to be fine on vfat
>
> Reported-by: Wei Gao <wegao@suse.com>
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
> Verifying NTFS as kernel module (I'd be surprised if it was not
> working). The setup is the same as for fsconfig01.c (fsconfig02.c is for
> expected errors, thus has less strict requirements).
>
> Kind regards,
> Petr
>
> testcases/kernel/syscalls/fsconfig/fsconfig03.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/testcases/kernel/syscalls/fsconfig/fsconfig03.c b/testcases/kernel/syscalls/fsconfig/fsconfig03.c
> index e891c9f98..0ba5355d3 100644
> --- a/testcases/kernel/syscalls/fsconfig/fsconfig03.c
> +++ b/testcases/kernel/syscalls/fsconfig/fsconfig03.c
> @@ -88,7 +88,7 @@ static struct tst_test test = {
> .mntpoint = MNTPOINT,
> .all_filesystems = 1,
> .taint_check = TST_TAINT_W | TST_TAINT_D,
> - .skip_filesystems = (const char *const []){"ntfs", "vfat", NULL},
> + .skip_filesystems = (const char *const []){"fuse", NULL},
I feel you can not skip fuse system since i found following list in LTP:
static const char *const fs_type_whitelist[] = {
"ext2",
"ext3",
"ext4",
"xfs",
"btrfs",
"vfat",
"exfat",
"ntfs",
"tmpfs",
NULL
};
> .tags = (const struct tst_tag[]) {
> {"linux-git", "722d94847de29"},
> {"CVE", "2022-0185"},
> --
> 2.40.0
>
More information about the ltp
mailing list