[LTP] [PATCH v3] syscalls/newmount: new test case for new mount API
Petr Vorel
pvorel@suse.cz
Thu Jan 16 12:08:03 CET 2020
Hi Zorro,
> About the TST_FS_SKIP_FUSE flag I have below questions:
> 1) About ntfs and vfat test
> You said below content in [1]:
> I like you use .all_filesystems = 1 as I suggested in [1], but I warned that it
> breaks nfs.
> newmount01.c:58: FAIL: fsopen ntfs: ENODEV (19)
> Fortunately this does not need any patch for filtering nfs as TST_FS_SKIP_FUSE
> is enough for it - add this to struct tst_test:
> .dev_fs_flags = TST_FS_SKIP_FUSE
> Not sure if just fsopen() is affected, but it probably does not make sense to test
> just fsopen() and fsconfig().
> Actually if you fsopen("ntfs", ...), it doesn't test FUSE. It's testing linux
> kernel ntfs:
> # lsmod |grep ntfs
> ntfs 819200 0
> Similar for vfat:
> # lsmod |grep fat
> vfat 45056 0
> fat 274432 1 vfat
> And from my test on linux 5.5-rc4, the ntfs and vfat can test passed:
> ...
> tst_test.c:1278: INFO: Testing on vfat
> tst_mkfs.c:90: INFO: Formatting /dev/loop0 with vfat opts='' extra opts=''
> tst_test.c:1217: INFO: Timeout per run is 0h 05m 00s
> newmount01.c:62: PASS: fsopen vfat
> newmount01.c:69: PASS: fsconfig set source to /dev/loop0
> newmount01.c:77: PASS: fsconfig create superblock
> newmount01.c:84: PASS: fsmount
> newmount01.c:92: PASS: move_mount attach to mount point
> newmount01.c:96: PASS: new mount works
> tst_test.c:1278: INFO: Testing on ntfs
> tst_mkfs.c:90: INFO: Formatting /dev/loop0 with ntfs opts='' extra opts=''
> The partition start sector was not specified for /dev/loop0 and it could not be obtained automatically. It has been set to 0.
> The number of sectors per track was not specified for /dev/loop0 and it could not be obtained automatically. It has been set to 0.
> The number of heads was not specified for /dev/loop0 and it could not be obtained automatically. It has been set to 0.
> To boot from a device, Windows needs the 'partition start sector', the 'sectors per track' and the 'number of heads' to be set.
> Windows will not be able to boot from this device.
> tst_test.c:1217: INFO: Timeout per run is 0h 05m 00s
> newmount01.c:62: PASS: fsopen ntfs
> newmount01.c:69: PASS: fsconfig set source to /dev/loop0
> newmount01.c:77: PASS: fsconfig create superblock
> newmount01.c:84: PASS: fsmount
> newmount01.c:92: PASS: move_mount attach to mount point
> newmount01.c:96: PASS: new mount works
> You hit that error, maybe due to your current kernel didn't build these fs
> modules, but your system has mkfs.ntfs* tool.
You're right (CONFIG_NTFS_FS not set, but mkfs.ntfs).
Sorry for a wrong suggestion.
The rest I'll reply at v4 of your post.
> 2) About if this case supports FUSE:
> This current code of this case can't do a FUSE mount, due to if we want to mount
> a fs through FUSE, we need to do more things, something likes:
> fd = open(/dev/fuse, ...)
> fsfd = fsopen("fuse", ...);
> ...
> fsconfig(fsfd, FSCONFIG_SET_FD, "fd", NULL, fd);
> ...
> (more)
> ...
> It's not a simple mount as general localfs mount does. So I didn't do that.
> If need, I'd like to write another case to cover that.
> 3) About the TST_FS_SKIP_FUSE flag:
> If you want to skip ntfs and vfat test by set .dev_fs_flags = TST_FS_SKIP_FUSE
> for this case. I think it doesn't work. The reason as I said above. Actually
> if the current kernel support ntfs and vfat (build them), and we have mkfs.ntfs
> and mkfs.vfat tools, then this case can test it.
> But if we have the tools, but don't have the kernel support. The case will fail
> as you hit.
Kind regards,
Petr
More information about the ltp
mailing list