From 78ae7215614a7717d2cf838afefb1525fbb70602 Mon Sep 17 00:00:00 2001 From: Anand Avati Date: Tue, 5 Feb 2013 16:04:50 -0800 Subject: fuse-bridge: use READDIRPLUS support when available This patch makes use of READDIRPLUS call when support is available in the kernel. Change-Id: Iac78881179567856b55af1f46594a2b2859309f0 BUG: 908128 Signed-off-by: Anand V. Avati Reviewed-on: http://review.gluster.org/3905 Tested-by: Gluster Build System Reviewed-by: Amar Tumballi Reviewed-by: Brian Foster --- contrib/fuse-include/fuse_kernel.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'contrib') diff --git a/contrib/fuse-include/fuse_kernel.h b/contrib/fuse-include/fuse_kernel.h index e6fdcf809..c6396555c 100644 --- a/contrib/fuse-include/fuse_kernel.h +++ b/contrib/fuse-include/fuse_kernel.h @@ -161,6 +161,7 @@ struct fuse_file_lock { #define FUSE_EXPORT_SUPPORT (1 << 4) #define FUSE_BIG_WRITES (1 << 5) #define FUSE_DONT_MASK (1 << 6) +#define FUSE_DO_READDIRPLUS (1 << 13) /** * CUSE INIT request/reply flags @@ -260,6 +261,7 @@ enum fuse_opcode { FUSE_IOCTL = 39, FUSE_POLL = 40, + FUSE_READDIRPLUS = 44, /* CUSE specific operations */ CUSE_INIT = 4096, }; @@ -564,6 +566,16 @@ struct fuse_dirent { #define FUSE_DIRENT_SIZE(d) \ FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen) +struct fuse_direntplus { + struct fuse_entry_out entry_out; + struct fuse_dirent dirent; +}; + +#define FUSE_NAME_OFFSET_DIRENTPLUS \ + offsetof(struct fuse_direntplus, dirent.name) +#define FUSE_DIRENTPLUS_SIZE(d) \ + FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET_DIRENTPLUS + (d)->dirent.namelen) + struct fuse_notify_inval_inode_out { __u64 ino; __s64 off; -- cgit