[LTP] [PATCH] SAFE_MOUNT: print debug info about mounting operation

Martin Doucha mdoucha@suse.cz
Mon Jun 5 10:39:48 CEST 2023


Hi,

On 04. 06. 23 11:51, Murphy Zhou wrote:
> Signed-off-by: Murphy Zhou <jencce.kernel@gmail.com>
> ---
>   lib/safe_macros.c | 17 +++++++++++++++++
>   1 file changed, 17 insertions(+)
> 
> diff --git a/lib/safe_macros.c b/lib/safe_macros.c
> index af6dd0716..a66285a0e 100644
> --- a/lib/safe_macros.c
> +++ b/lib/safe_macros.c
> @@ -898,7 +898,24 @@ int safe_mount(const char *file, const int lineno, void (*cleanup_fn)(void),
>   	       const void *data)
>   {
>   	int rval = -1;
> +	char cdir[PATH_MAX], mpath[PATH_MAX];
>   
> +	if (!getcwd(cdir, PATH_MAX)) {
> +		tst_resm(TWARN | TERRNO, "Failed to find current directory");
> +		return 0;

You return success when nothing was mounted. That is clearly wrong. 
Either call tst_brkm_(... TBROK ...) if the failure is so serious that 
the test cannot continue, or don't return at all.

> +	}
> +
> +	rval = snprintf(mpath, PATH_MAX, "%s/%s", cdir, target);

The C library has a function for resolving paths: realpath(). Please use 
that.

> +	if (rval < 0 || rval >= PATH_MAX) {
> +		tst_resm(TWARN | TERRNO,
> +			 "snprintf() should have returned %d instead of %d",
> +			 PATH_MAX, rval);
> +		return 0;

Returning here is also wrong.

> +	}
> +
> +	tst_resm_(file, lineno, TINFO,
> +		"Mounting %s to %s fstyp=%s flags=%x",
> +		source, mpath, filesystemtype, mountflags);
>   	/*
>   	 * Don't try using the kernel's NTFS driver when mounting NTFS, since
>   	 * the kernel's NTFS driver doesn't have proper write support.

-- 
Martin Doucha   mdoucha@suse.cz
SW Quality Engineer
SUSE LINUX, s.r.o.
CORSO IIa
Krizikova 148/34
186 00 Prague 8
Czech Republic



More information about the ltp mailing list