aboutsummaryrefslogtreecommitdiff
path: root/example/hello.c
diff options
context:
space:
mode:
authorGravatar Eric Wong <normalperson@yhbt.net>2014-03-05 14:45:44 +0100
committerGravatar Miklos Szeredi <mszeredi@suse.cz>2014-03-05 14:45:44 +0100
commit6bf2e6f07c133f7b145a4726c5d962f14c650ca7 (patch)
tree7ab3a9941edad868c961404f0bbee23967990118 /example/hello.c
parent0096c126aa4548df66c658afeb18a5a5356a2c57 (diff)
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.
Diffstat (limited to 'example/hello.c')
-rwxr-xr-xexample/hello.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/example/hello.c b/example/hello.c
index d26d826..3c24c8b 100755
--- a/example/hello.c
+++ b/example/hello.c
@@ -65,17 +65,19 @@ static int hello_getattr(const char *path, struct stat *stbuf)
}
static int hello_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)
{
(void) offset;
(void) fi;
+ (void) flags;
if (strcmp(path, "/") != 0)
return -ENOENT;
- filler(buf, ".", NULL, 0);
- filler(buf, "..", NULL, 0);
- filler(buf, hello_path + 1, NULL, 0);
+ filler(buf, ".", NULL, 0, 0);
+ filler(buf, "..", NULL, 0, 0);
+ filler(buf, hello_path + 1, NULL, 0, 0);
return 0;
}