[LTP] [PATCH 1/1] tst_mkfs: Add -I option to mkfs.vfat

Richard Palethorpe rpalethorpe@suse.de
Tue Mar 30 12:00:12 CEST 2021


Hello,

Petr Vorel <pvorel@suse.cz> writes:

> to workaround occasional error on tests with .all_filesystems flag:
>
> tst_test.c:888: TINFO: Formatting /dev/loop0 with vfat opts='' extra opts=''
> mkfs.vfat: Partitions or virtual mappings on device '/dev/loop0',
>  not making filesystem (use -I to override)
> tst_test.c:888: TBROK: mkfs.vfat failed with exit code 1
>
> Tested also on BusyBox v1.33.0, which accept but ignores -I since
> beginning (1.14.0).
>
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
> Richard also suggested to wipe the device, but not sure how to do it
> quickly and don't bring any more dependency.

I guess that you only need to wipe the headers by writing zeros to the
device. That is unless this is actually refering to a mapping in
/dev/mapper?

>
> Kind regards,
> Petr
>
>  lib/tst_mkfs.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>
> diff --git a/lib/tst_mkfs.c b/lib/tst_mkfs.c
> index 736324f04..2d335a3ad 100644
> --- a/lib/tst_mkfs.c
> +++ b/lib/tst_mkfs.c
> @@ -52,6 +52,16 @@ void tst_mkfs_(const char *file, const int lineno, void (cleanup_fn)(void),
>  
>  	snprintf(mkfs, sizeof(mkfs), "mkfs.%s", fs_type);
>  
> +	/*
> +	 * Workaround a problem:
> +	 * mkfs.vfat: Partitions or virtual mappings on device '/dev/loop0', not
> +	 * making filesystem (use -I to override)
> +	 */
> +	if (!strcmp(fs_type, "vfat")) {
> +		argv[pos] = "-I";
> +		strcat(fs_opts_str, argv[pos++]);

Doesn't it need a space after -I? Might be better to put this after
fs_opts and then you can check i > 0.

> +	}
> +
>  	if (fs_opts) {
>  		for (i = 0; fs_opts[i]; i++) {
>  			argv[pos++] = fs_opts[i];


-- 
Thank you,
Richard.


More information about the ltp mailing list