[LTP] [PATCH v3 1/2] libswap: add two methods to create swapfile

Petr Vorel pvorel@suse.cz
Fri Mar 22 06:00:46 CET 2024


Hi Li,

...
> Signed-off-by: Li Wang <liwang@redhat.com>
> Signed-off-by: Wei Gao <wegao@suse.com>
> ---
...
-int make_swapfile(const char *swapfile, int blocks, int safe)
+int make_swapfile_(const char *file, const int lineno,
+			const char *swapfile, unsigned int num,
+			int safe, enum swapfile_method method)
 {
 	struct statvfs fs_info;
-	unsigned long blk_size, bs;
+	unsigned long blk_size;
+	unsigned int blocks = 0;
 	size_t pg_size = sysconf(_SC_PAGESIZE);
-	char mnt_path[100];
+	char mnt_path[128];

nit: why this increase to 128? Why not PATH_MAX?

>  	/* To guarantee at least one page can be swapped out */
> -	if (blk_size * blocks < pg_size)
> -		bs = pg_size;
> -	else
> -		bs = blk_size;
> +	if (blk_size * blocks < pg_size) {
> +		tst_res(TWARN, "Swapfile size is less than the system page size. \
> +			Using page size (%lu bytes) instead of block size (%lu bytes).",

libswap.c:163: WARNING: Avoid line continuations in quoted strings

This will fix it:

		tst_res(TWARN, "Swapfile size is less than the system page size. "
			"Using page size (%lu bytes) instead of block size (%lu bytes).",

> +			(unsigned long)pg_size, blk_size);
> +		blk_size = pg_size;
> +	}

>  	if (sscanf(swapfile, "%[^/]", mnt_path) != 1)
> -		tst_brk(TBROK, "sscanf failed");
> +		tst_brk_(file, lineno, TBROK, "sscanf failed");

> -	if (!tst_fs_has_free(mnt_path, bs * blocks, TST_BYTES))
> -		tst_brk(TCONF, "Insufficient disk space to create swap file");
> +	if (!tst_fs_has_free(mnt_path, blk_size * blocks, TST_BYTES))
> +		tst_brk_(file, lineno, TCONF, "Insufficient disk space to create swap file");

>  	/* create file */
> -	if (prealloc_contiguous_file(swapfile, bs, blocks) != 0)
> -		tst_brk(TBROK, "Failed to create swapfile");
> +	if (prealloc_contiguous_file(swapfile, blk_size, blocks) != 0)
> +		tst_brk_(file, lineno, TBROK, "Failed to create swapfile");

>  	/* Fill the file if needed (specific to old xfs filesystems) */
>  	if (tst_fs_type(swapfile) == TST_XFS_MAGIC) {
> -		if (tst_fill_file(swapfile, 0, bs, blocks) != 0)
> -			tst_brk(TBROK, "Failed to fill swapfile");
> +		if (tst_fill_file(swapfile, 0, blk_size, blocks) != 0)
> +			tst_brk_(file, lineno, TBROK, "Failed to fill swapfile");
>  	}

>  	/* make the file swapfile */
> -	const char *argv[2 + 1];
> -
> -	argv[0] = "mkswap";
> -	argv[1] = swapfile;
> -	argv[2] = NULL;
> +	const char *argv[] = {"mkswap", swapfile, NULL};

libswap.c:186: WARNING: char * array declaration might be better as static const

This will fix it:

	const char *const argv[] = {"mkswap", swapfile, NULL};

>  	return tst_cmd(argv, "/dev/null", "/dev/null", safe ?
> -				   TST_CMD_PASS_RETVAL | TST_CMD_TCONF_ON_MISSING : 0);
> +			TST_CMD_PASS_RETVAL | TST_CMD_TCONF_ON_MISSING : 0);

The rest LGTM.

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

Kind regards,
Petr


More information about the ltp mailing list