From 6bf2e6f07c133f7b145a4726c5d962f14c650ca7 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 5 Mar 2014 14:45:44 +0100 Subject: libfuse: implement readdirplus for high-level API Reuse the old "readdir" callback, but add a flags argument, that has FUSE_READDIR_PLUS in case this is a "plus" version. Filesystems can safely ignore this flag, but if they want they can add optimizations based on it: i.e. only retrieve the full attributes in PLUS mode. The filler function is also given a flags argument and the filesystem can set FUSE_FILL_DIR_PLUS if all the attributes in "stat" are valid. --- example/fsel.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'example/fsel.c') diff --git a/example/fsel.c b/example/fsel.c index 69202ee..b496c9a 100755 --- a/example/fsel.c +++ b/example/fsel.c @@ -87,20 +87,22 @@ static int fsel_getattr(const char *path, struct stat *stbuf) } static int fsel_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) { char name[2] = { }; int i; (void) offset; (void) fi; + (void) flags; if (strcmp(path, "/") != 0) return -ENOENT; for (i = 0; i < FSEL_FILES; i++) { name[0] = fsel_hex_map[i]; - filler(buf, name, NULL, 0); + filler(buf, name, NULL, 0, 0); } return 0; -- cgit v1.2.3