[LTP] [PATCH] SAFE_MOUNT: Fix mountflags handling for FUSE

Cyril Hrubis chrubis@suse.cz
Mon Jun 30 14:27:19 CEST 2025


- abort tests on FUSE when particular mount flag is not implemented
- implement MS_RDONLY for FUSE
- enable statmount02 that failed previously because of missing MS_RDONLY

Reported-by: Signed-off-by: Jan Polensky <japo@linux.ibm.com>
Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
---
 lib/safe_macros.c                                 | 13 +++++++++++--
 testcases/kernel/syscalls/statmount/statmount02.c |  1 -
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/lib/safe_macros.c b/lib/safe_macros.c
index 6946cc5bc..726c9ae8e 100644
--- a/lib/safe_macros.c
+++ b/lib/safe_macros.c
@@ -942,10 +942,19 @@ int safe_mount(const char *file, const int lineno, void (*cleanup_fn)(void),
 	 */
 	if (possibly_fuse(filesystemtype)) {
 		char buf[1024];
+		const char *mount_ro = "";
+
+		if (mountflags & MS_RDONLY)
+			mount_ro = "-o ro";
+
+		if (mountflags & (~MS_RDONLY)) {
+			tst_brkm_(file, lineno, TBROK, cleanup_fn,
+			          "FUSE mount flag(s) not implemented!");
+		}
 
 		tst_resm_(file, lineno, TINFO, "Trying FUSE...");
-		snprintf(buf, sizeof(buf), "mount.%s '%s' '%s'",
-			filesystemtype, source, target);
+		snprintf(buf, sizeof(buf), "mount.%s %s '%s' '%s'",
+			filesystemtype, mount_ro, source, target);
 
 		rval = tst_system(buf);
 		if (WIFEXITED(rval) && WEXITSTATUS(rval) == 0)
diff --git a/testcases/kernel/syscalls/statmount/statmount02.c b/testcases/kernel/syscalls/statmount/statmount02.c
index 07f877e04..f322fe930 100644
--- a/testcases/kernel/syscalls/statmount/statmount02.c
+++ b/testcases/kernel/syscalls/statmount/statmount02.c
@@ -68,7 +68,6 @@ static struct tst_test test = {
 	.format_device = 1,
 	.all_filesystems = 1,
 	.skip_filesystems = (const char *const []) {
-		"fuse",
 		"btrfs",
 		NULL
 	},
-- 
2.49.0



More information about the ltp mailing list