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

Petr Vorel pvorel@suse.cz
Thu Aug 7 08:39:16 CEST 2025


Hi all,

> - 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
I would personally split the change but understand why you want to keep it
together (it's related) and I'm ok with it. Anyway, it's important that you
remember to enable it.

> Reported-by: Signed-off-by: Jan Polensky <japo@linux.ibm.com>
very nit: I haven't seen joining tags on single line. That will break stat
scripts. And that might be the reason why Jan was noc Cc when sending with git
send-email.

Maybe change before merge:
Reported-by: Jan Polensky <japo@linux.ibm.com>
Signed-off-by: Jan Polensky <japo@linux.ibm.com>

or to:
Reported-by: Jan Polensky <japo@linux.ibm.com>
Co-developed-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";

Your version is slightly better than Jan's as it avoids duplicity.
Let's merge this one. Maybe add

Reviewed-by: Petr Vorel <pvorel@suse.cz>

Kind regards,
Petr

> +
> +		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
>  	},


More information about the ltp mailing list