Re: [PATCH 1/1] lib: Add support bcachefs filesystem

Cyril Hrubis
2023-12-07T14:33:52Z

Hi!
> bcachefs has been merged into v6.7-rc1 [1]. Let's add it's support to
> LTP .all_filesystems = 1 and TST_ALL_FILESYSTEMS=1.
>
> [1] https://lwn.net/Articles/934692/
>
> Suggested-by: Cyril Hrubis <chrubis@suse.cz>
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
> Hi,
>
> this should be merged after v6.7 is released.

Agreed, although it's unlikey that they will pull bcachefs off from the
tree now. Any way I think that we should add the support to the next
release.

> So far I haven't tested all LTP tests on bcachefs temporary directory.
> I have only tested tests which use .all_filesystems = 1 or TST_ALL_FILESYSTEMS=1.
> So far it looks like there are only a few tests failing:
>
> statvfs01.c:44: TFAIL: creat(valid_fname, 0444) failed: ENAMETOOLONG (36)

That strange, that would mean that statvfs() reports possibly wrong
f_namemax. Looking at the code the f_namemax is initialized to
BCH_NAME_MAX in bch2_statfs().

And the dirent_create_key() does:

if (name->len > BCH_NAME_MAX)
return ERR_PTR(-ENAMETOOLONG);

That does not look like there is any room for a failure. Maybe we can
print the buf.f_namemax value in the test and check if it's 512 since
that is the value of BCH_NAME_MAX.

> statx04.c:122: TFAIL: STATX_ATTR_COMPRESSED not supported

This probably just needs:

diff --git a/testcases/kernel/syscalls/statx/statx04.c b/testcases/kernel/syscalls/statx/statx04.c
index 58296bd24..8d14cef8c 100644
--- a/testcases/kernel/syscalls/statx/statx04.c
+++ b/testcases/kernel/syscalls/statx/statx04.c
@@ -97,7 +97,8 @@ static void setup(void)
expected_mask |= attr_list[i].attr;

/* STATX_ATTR_COMPRESSED not supported on XFS, TMPFS */
- if (!strcmp(tst_device->fs_type, "xfs") || !strcmp(tst_device->fs_type, "tmpfs"))
+ if (!strcmp(tst_device->fs_type, "xfs") || !strcmp(tst_device->fs_type, "tmpfs") ||
+ !strcmp(tst_device->fs_type, "bcachefs")
expected_mask &= ~STATX_ATTR_COMPRESSED;

/* Attribute support was added to Btrfs statx() in kernel v4.13 */

> fanotify13.c, fanotify15.c and fanotify16.c produce many errors.

That is probably something for Jan Kara or Amir Goldstein.

> I haven't tested on machine with more NUMA nodes, thus
> set_mempolicy03.c, set_mempolicy04.c has not been tested.

--
Cyril Hrubis
chrubis@suse.cz