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. --- lib/modules/subdir.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'lib/modules/subdir.c') diff --git a/lib/modules/subdir.c b/lib/modules/subdir.c index eb56d36..05eccdf 100644 --- a/lib/modules/subdir.c +++ b/lib/modules/subdir.c @@ -181,14 +181,15 @@ static int subdir_opendir(const char *path, struct fuse_file_info *fi) static int subdir_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, - struct fuse_file_info *fi) + struct fuse_file_info *fi, + enum fuse_readdir_flags flags) { struct subdir *d = subdir_get(); char *newpath; int err = subdir_addpath(d, path, &newpath); if (!err) { err = fuse_fs_readdir(d->next, newpath, buf, filler, offset, - fi); + fi, flags); free(newpath); } return err; -- cgit v1.2.3