From c021e910a5592756f7c3fa47f89d83e41c8a3505 Mon Sep 17 00:00:00 2001 From: FredyVia <942513309@qq.com> Date: Wed, 20 Mar 2024 23:08:04 +0800 Subject: [PATCH] Add FUSE_FILL_DIR_DEFAULTS enum (#903) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In order to use the fuse_fill_dir_t function in a C++ program, add the enum item: FUSE_FILL_DIR_DEFAULTS Without this change g++ compilation failed with example/hello.c:94:35: error: invalid conversion from ‘int’ to ‘fuse_fill_dir_flags’ [-fpermissive] 94 | filler(buf, ".", NULL, 0, 0); | ^ | | | int --- example/hello.c | 6 +++--- example/invalidate_path.c | 4 ++-- example/ioctl.c | 6 +++--- example/passthrough_fh.c | 2 +- example/poll.c | 2 +- include/fuse.h | 2 ++ 6 files changed, 12 insertions(+), 10 deletions(-) diff --git a/example/hello.c b/example/hello.c index b24ebfe..6df8173 100644 --- a/example/hello.c +++ b/example/hello.c @@ -91,9 +91,9 @@ static int hello_readdir(const char *path, void *buf, fuse_fill_dir_t filler, if (strcmp(path, "/") != 0) return -ENOENT; - filler(buf, ".", NULL, 0, 0); - filler(buf, "..", NULL, 0, 0); - filler(buf, options.filename, NULL, 0, 0); + filler(buf, ".", NULL, 0, FUSE_FILL_DIR_DEFAULTS); + filler(buf, "..", NULL, 0, FUSE_FILL_DIR_DEFAULTS); + filler(buf, options.filename, NULL, 0, FUSE_FILL_DIR_DEFAULTS); return 0; } diff --git a/example/invalidate_path.c b/example/invalidate_path.c index 9159b2f..0e8d77f 100644 --- a/example/invalidate_path.c +++ b/example/invalidate_path.c @@ -117,9 +117,9 @@ static int xmp_readdir(const char *path, void *buf, fuse_fill_dir_t filler, (void) buf; struct stat file_stat; xmp_getattr("/" TIME_FILE_NAME, &file_stat, NULL); - filler(buf, TIME_FILE_NAME, &file_stat, 0, 0); + filler(buf, TIME_FILE_NAME, &file_stat, 0, FUSE_FILL_DIR_DEFAULTS); xmp_getattr("/" GROW_FILE_NAME, &file_stat, NULL); - filler(buf, GROW_FILE_NAME, &file_stat, 0, 0); + filler(buf, GROW_FILE_NAME, &file_stat, 0, FUSE_FILL_DIR_DEFAULTS); return 0; } } diff --git a/example/ioctl.c b/example/ioctl.c index b8dab00..9fe5c5b 100644 --- a/example/ioctl.c +++ b/example/ioctl.c @@ -181,9 +181,9 @@ static int fioc_readdir(const char *path, void *buf, fuse_fill_dir_t filler, if (fioc_file_type(path) != FIOC_ROOT) return -ENOENT; - filler(buf, ".", NULL, 0, 0); - filler(buf, "..", NULL, 0, 0); - filler(buf, FIOC_NAME, NULL, 0, 0); + filler(buf, ".", NULL, 0, FUSE_FILL_DIR_DEFAULTS); + filler(buf, "..", NULL, 0, FUSE_FILL_DIR_DEFAULTS); + filler(buf, FIOC_NAME, NULL, 0, FUSE_FILL_DIR_DEFAULTS); return 0; } diff --git a/example/passthrough_fh.c b/example/passthrough_fh.c index 701d59e..3602c96 100644 --- a/example/passthrough_fh.c +++ b/example/passthrough_fh.c @@ -167,7 +167,7 @@ static int xmp_readdir(const char *path, void *buf, fuse_fill_dir_t filler, while (1) { struct stat st; off_t nextoff; - enum fuse_fill_dir_flags fill_flags = 0; + enum fuse_fill_dir_flags fill_flags = FUSE_FILL_DIR_DEFAULTS; if (!d->entry) { d->entry = readdir(d->dp); diff --git a/example/poll.c b/example/poll.c index fd53ec0..ffcb4f1 100644 --- a/example/poll.c +++ b/example/poll.c @@ -114,7 +114,7 @@ static int fsel_readdir(const char *path, void *buf, fuse_fill_dir_t filler, for (i = 0; i < FSEL_FILES; i++) { name[0] = fsel_hex_map[i]; - filler(buf, name, NULL, 0, 0); + filler(buf, name, NULL, 0, FUSE_FILL_DIR_DEFAULTS); } return 0; diff --git a/include/fuse.h b/include/fuse.h index f0c6f10..90ee4bb 100644 --- a/include/fuse.h +++ b/include/fuse.h @@ -48,6 +48,7 @@ enum fuse_readdir_flags { * FUSE_FILL_DIR_FLAGS for the filler function. The filesystem may also * just ignore this flag completely. */ + FUSE_READDIR_DEFAULTS = 0, FUSE_READDIR_PLUS = (1 << 0) }; @@ -64,6 +65,7 @@ enum fuse_fill_dir_flags { * It is okay to set FUSE_FILL_DIR_PLUS if FUSE_READDIR_PLUS is not set * and vice versa. */ + FUSE_FILL_DIR_DEFAULTS = 0, FUSE_FILL_DIR_PLUS = (1 << 1) };