Re: [RFC PATCH v1 2/5] selftests/filesystems: convert fusectl test to fuse3

From: Amir Goldstein

Date: Tue Jul 21 2026 - 06:46:21 EST


On Wed, Jul 8, 2026 at 3:11 PM Luis Henriques <luis@xxxxxxxxxx> wrote:
>
> Since it is probably not worth adding new fuse kselftests based on fuse2,
> it is a good idea to convert the single existing test to fuse3. The
> conversion is trivial, as it only requires some changes to function
> signatures (the gettattr and truncate fuse operations), and to the filler()
> helper.
>
> Signed-off-by: Luis Henriques <luis@xxxxxxxxxx>

Reviewed-by: Amir Goldstein <amir73il@xxxxxxxxx>

> ---
> .../testing/selftests/filesystems/fuse/Makefile | 8 ++++----
> .../selftests/filesystems/fuse/fuse_mnt.c | 17 ++++++++++-------
> 2 files changed, 14 insertions(+), 11 deletions(-)
>
> diff --git a/tools/testing/selftests/filesystems/fuse/Makefile b/tools/testing/selftests/filesystems/fuse/Makefile
> index 612aad69a93a..422cd1b1688d 100644
> --- a/tools/testing/selftests/filesystems/fuse/Makefile
> +++ b/tools/testing/selftests/filesystems/fuse/Makefile
> @@ -7,14 +7,14 @@ TEST_GEN_FILES := fuse_mnt
>
> include ../../lib.mk
>
> -VAR_CFLAGS := $(shell pkg-config fuse --cflags 2>/dev/null)
> +VAR_CFLAGS := $(shell pkg-config fuse3 --cflags 2>/dev/null)
> ifeq ($(VAR_CFLAGS),)
> -VAR_CFLAGS := -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse
> +VAR_CFLAGS := -D_FILE_OFFSET_BITS=64 -I/usr/include/fuse3
> endif
>
> -VAR_LDLIBS := $(shell pkg-config fuse --libs 2>/dev/null)
> +VAR_LDLIBS := $(shell pkg-config fuse3 --libs 2>/dev/null)
> ifeq ($(VAR_LDLIBS),)
> -VAR_LDLIBS := -lfuse -pthread
> +VAR_LDLIBS := -lfuse3 -pthread
> endif
>
> $(OUTPUT)/fuse_mnt: CFLAGS += $(VAR_CFLAGS)
> diff --git a/tools/testing/selftests/filesystems/fuse/fuse_mnt.c b/tools/testing/selftests/filesystems/fuse/fuse_mnt.c
> index d12b17f30fad..5d335fa5cf05 100644
> --- a/tools/testing/selftests/filesystems/fuse/fuse_mnt.c
> +++ b/tools/testing/selftests/filesystems/fuse/fuse_mnt.c
> @@ -4,7 +4,7 @@
> * Creates a simple FUSE filesystem with a single read-write file (/test)
> */
>
> -#define FUSE_USE_VERSION 26
> +#define FUSE_USE_VERSION 31
>
> #include <fuse.h>
> #include <stdio.h>
> @@ -20,7 +20,8 @@ static char *content;
> static size_t content_size = 0;
> static const char test_path[] = "/test";
>
> -static int test_getattr(const char *path, struct stat *st)
> +static int test_getattr(const char *path, struct stat *st,
> + struct fuse_file_info *fi)
> {
> memset(st, 0, sizeof(*st));
>
> @@ -41,14 +42,15 @@ static int test_getattr(const char *path, struct stat *st)
> }
>
> static int test_readdir(const char *path, void *buf, fuse_fill_dir_t filler,
> - off_t offset, struct fuse_file_info *fi)
> + off_t offset, struct fuse_file_info *fi,
> + enum fuse_readdir_flags flags)
> {
> if (strcmp(path, "/"))
> return -ENOENT;
>
> - filler(buf, ".", NULL, 0);
> - filler(buf, "..", NULL, 0);
> - filler(buf, test_path + 1, NULL, 0);
> + filler(buf, ".", NULL, 0, FUSE_FILL_DIR_DEFAULTS);
> + filler(buf, "..", NULL, 0, FUSE_FILL_DIR_DEFAULTS);
> + filler(buf, test_path + 1, NULL, 0, FUSE_FILL_DIR_DEFAULTS);
>
> return 0;
> }
> @@ -107,7 +109,8 @@ static int test_write(const char *path, const char *buf, size_t size,
> return size;
> }
>
> -static int test_truncate(const char *path, off_t size)
> +static int test_truncate(const char *path, off_t size,
> + struct fuse_file_info *fi)
> {
> if (strcmp(path, test_path) != 0)
> return -ENOENT;
>