From: Yan, Zheng Date: Sun, 30 Mar 2014 01:21:57 +0000 (+0800) Subject: fuse: implement 'access' low level function X-Git-Tag: v0.79~35^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F1566%2Fhead;p=ceph.git fuse: implement 'access' low level function Add an empty 'access' function to fuse low level functions. This allow us to use ceph-fuse with fuse_default_permissions = false. 'fuse_default_permissions = false' can significantly improve the speed of create/removing large number of files. When fuse_default_permissions is true, the fuse kernel module sends a getattr request whenever the kernel needs to check a directory's permission. getattr (STAT_CAP_INODE_ALL) can be very slow if the directory was just modified. Signed-off-by: Yan, Zheng --- diff --git a/src/client/fuse_ll.cc b/src/client/fuse_ll.cc index d9f6a8d5249a..14cb6d47f110 100644 --- a/src/client/fuse_ll.cc +++ b/src/client/fuse_ll.cc @@ -591,6 +591,11 @@ static void fuse_ll_releasedir(fuse_req_t req, fuse_ino_t ino, fuse_reply_err(req, 0); } +static void fuse_ll_access(fuse_req_t req, fuse_ino_t ino, int mask) +{ + fuse_reply_err(req, 0); +} + static void fuse_ll_create(fuse_req_t req, fuse_ino_t parent, const char *name, mode_t mode, struct fuse_file_info *fi) { @@ -733,7 +738,7 @@ const static struct fuse_lowlevel_ops fuse_ll_oper = { getxattr: fuse_ll_getxattr, listxattr: fuse_ll_listxattr, removexattr: fuse_ll_removexattr, - access: 0, + access: fuse_ll_access, create: fuse_ll_create, getlk: 0, setlk: 0,