[LTP] [PATCH v1 1/1] swap: Add exfat to filesystems requiring tst_fill_file

Cyril Hrubis chrubis@suse.cz
Tue Jun 9 11:19:19 CEST 2026


Hi!
> exfat, like XFS, requires actual data writes (not just fallocate) to
> fully allocate swap files. Without this, swapon(2) fails with EINVAL
> due to unallocated extents.
> 
> This matches the kernel's requirement that swap files must be fully
> allocated before activation.
> 
> Signed-off-by: Jan Polensky <japo@linux.ibm.com>
> ---
>  libs/swap/tse_swap.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/libs/swap/tse_swap.c b/libs/swap/tse_swap.c
> index ae3c193132e6..e321cb1dfe63 100644
> --- a/libs/swap/tse_swap.c
> +++ b/libs/swap/tse_swap.c
> @@ -177,8 +177,9 @@ int make_swapfile(const char *file, const int lineno,
>  	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) {
> +	/* Fill the file if needed (specific to xfs and exfat filesystems) */
> +	long fs_type = tst_fs_type(swapfile);
> +	if (fs_type == TST_XFS_MAGIC || fs_type == TST_EXFAT_MAGIC) {
>  		if (tst_fill_file(swapfile, 0, blk_size, blocks) != 0)
>  			tst_brk_(file, lineno, TBROK, "Failed to fill swapfile");
>  	}

The swapon01 works for me for exfat without this change. Where does this
fail (arch, kernel, OS, is exfat in kernel or FUSE, etc.)?

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list