[LTP] [PATCH 2/2] fallocate05: Deallocate whole file on bcachefs

Petr Vorel pvorel@suse.cz
Fri Sep 6 10:02:00 CEST 2024


Hi Martin, all,

[ Cc Kent and Bcachefs ML ]

> The default deallocation size is likely too small for bcachefs
> to actually release the blocks. Since it is also a copy-on-write
> filesystem, deallocated the whole file like on Btrfs.

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

Kind regards,
Petr

> Signed-off-by: Martin Doucha <mdoucha@suse.cz>
> ---

> AFAICT Bcachefs uses 512 byte data blocks by default but 256KB inode
> blocks. The whole file will be 128KB and 32KB gets deallocated which may
> be too small. However, I'm not entirely sure whether this is the best
> solution.

> See also https://bugzilla.suse.com/show_bug.cgi?id=1230155

>  testcases/kernel/syscalls/fallocate/fallocate05.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

> diff --git a/testcases/kernel/syscalls/fallocate/fallocate05.c b/testcases/kernel/syscalls/fallocate/fallocate05.c
> index 979c70d6e..732a2f15d 100644
> --- a/testcases/kernel/syscalls/fallocate/fallocate05.c
> +++ b/testcases/kernel/syscalls/fallocate/fallocate05.c
> @@ -114,7 +114,8 @@ static void run(void)
>  	tst_res(TPASS, "fallocate() on full FS");

>  	/* Btrfs deallocates only complete extents, not individual blocks */
> -	if (!strcmp(tst_device->fs_type, "btrfs"))
> +	if (!strcmp(tst_device->fs_type, "btrfs") ||
> +		!strcmp(tst_device->fs_type, "bcachefs"))
>  		holesize = bufsize + extsize;
>  	else
>  		holesize = DEALLOCATE_BLOCKS * blocksize;


More information about the ltp mailing list