diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/fuse.h | 16 | ||||
-rw-r--r-- | include/fuse_common.h | 2 | ||||
-rw-r--r-- | include/fuse_lowlevel.h | 2 |
3 files changed, 17 insertions, 3 deletions
diff --git a/include/fuse.h b/include/fuse.h index 9739f26..4a099bc 100644 --- a/include/fuse.h +++ b/include/fuse.h @@ -63,8 +63,9 @@ typedef int (*fuse_dirfil_t) (fuse_dirh_t h, const char *name, int type, * * All methods are optional, but some are essential for a useful * filesystem (e.g. getattr). Open, flush, release, fsync, opendir, - * releasedir, fsyncdir, init and destroy are special purpose methods, - * without which a full featured filesystem can still be implemented. + * releasedir, fsyncdir, access, init and destroy are special purpose + * methods, without which a full featured filesystem can still be + * implemented. */ struct fuse_operations { /** Get file attributes. @@ -296,6 +297,17 @@ struct fuse_operations { * Introduced in version 2.3 */ void (*destroy) (void *); + + /** + * Check file access permissions + * + * Need not be implemented. This will be called for the access() + * system call. If the 'default_permissions' mount option is + * given, this method is not called. + * + * Introduced in version 2.5 + */ + int (*access) (const char *, int); }; /** Extra context that may be needed by some filesystems diff --git a/include/fuse_common.h b/include/fuse_common.h index ef7e85a..a59aea6 100644 --- a/include/fuse_common.h +++ b/include/fuse_common.h @@ -21,7 +21,7 @@ #define FUSE_MAJOR_VERSION 2 /** Minor version of FUSE library interface */ -#define FUSE_MINOR_VERSION 4 +#define FUSE_MINOR_VERSION 5 #define FUSE_MAKE_VERSION(maj, min) ((maj) * 10 + (min)) #define FUSE_VERSION FUSE_MAKE_VERSION(FUSE_MAJOR_VERSION, FUSE_MINOR_VERSION) diff --git a/include/fuse_lowlevel.h b/include/fuse_lowlevel.h index dee4325..73f57f0 100644 --- a/include/fuse_lowlevel.h +++ b/include/fuse_lowlevel.h @@ -642,6 +642,8 @@ struct fuse_lowlevel_ops { * @param name of the extended attribute */ void (*removexattr) (fuse_req_t req, fuse_ino_t ino, const char *name); + + void (*access) (fuse_req_t req, fuse_ino_t ino, int mask); }; /** |