diff options
author | Brian Foster <bfoster@redhat.com> | 2013-08-02 13:07:17 -0400 |
---|---|---|
committer | Anand Avati <avati@redhat.com> | 2013-08-03 05:48:44 -0700 |
commit | dc72dd5a7637c778f345df962f63aaee509d0e12 (patch) | |
tree | 657c1e58a3415cd13435c564e3dd7f9ced052c3e /contrib | |
parent | 8c1304b03542eefbbff82014827fc782c3c3584f (diff) |
fuse-bridge: update to protocol minor version 22
7.17
- Distinguishes between POSIX and BSD locking support via a
separate BSD locking support init flag. Older protocol versions
(since BSD support was added) export both types of locking
requests if FUSE_POSIX_LOCKS is specified. Gluster sets this
flag, so set FUSE_FLOCK_LOCKS as well on kernels that support
version 17 or newer.
7.18
- Adds ioctl() support for directories (and the associated
FUSE_IOCTL_DIR flag). Gluster does not support the ioctl
request, so no changes are required. Update the header.
- Adds support for the delete notification to allow a filesystem
to inform the kernel of a deleted inode. No gluster changes
required.
7.19
- Adds support for the fallocate request. Gluster already supports
fallocate and includes the request opcode definition and data
structure. Update the header version number.
7.20
- Adds the FUSE_AUTO_INVAL_DATA init flag to enable attribute
updates on reads and automatic cache invalidation on mtime
changes. Behavior does not change unless the init flag is
specified, no gluster changes required. Update header.
7.21
- Adds readdirplus support and updates the poll request to include
events. Gluster already supports readdirplus and includes the
relevant data structures. Poll is not supported, so no changes
are required. Update the header with some missing
READDIRPLUS_AUTO bits.
7.22
- Adds real asynchronous direct I/O support. Gluster already
supports/enables the associated bit (FUSE_ASYNC_DIO), no further
changes are required. Update the header.
BUG: 990744
Change-Id: Idf6fd75bbd48189587e548f7624626f9a75309e8
Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-on: http://review.gluster.org/5489
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/fuse-include/fuse_kernel.h | 44 |
1 files changed, 42 insertions, 2 deletions
diff --git a/contrib/fuse-include/fuse_kernel.h b/contrib/fuse-include/fuse_kernel.h index ac6a11af83b..edfe63f9dc6 100644 --- a/contrib/fuse-include/fuse_kernel.h +++ b/contrib/fuse-include/fuse_kernel.h @@ -73,6 +73,26 @@ * - FUSE_IOCTL_UNRESTRICTED shall now return with array of 'struct * fuse_ioctl_iovec' instead of ambiguous 'struct iovec' * - add FUSE_IOCTL_32BIT flag + * + * 7.17 + * - add FUSE_FLOCK_LOCKS and FUSE_RELEASE_FLOCK_UNLOCK + * + * 7.18 + * - add FUSE_IOCTL_DIR flag + * - add FUSE_NOTIFY_DELETE + * + * 7.19 + * - add FUSE_FALLOCATE + * + * 7.20 + * - add FUSE_AUTO_INVAL_DATA + * + * 7.21 + * - add FUSE_READDIRPLUS + * - send the requested events in POLL request + * + * 7.22 + * - add FUSE_ASYNC_DIO */ #ifndef _LINUX_FUSE_H @@ -89,7 +109,7 @@ #define FUSE_KERNEL_VERSION 7 /** Minor version number of this interface */ -#define FUSE_KERNEL_MINOR_VERSION 16 +#define FUSE_KERNEL_MINOR_VERSION 22 /** The node ID of the root inode */ #define FUSE_ROOT_ID 1 @@ -164,8 +184,14 @@ struct fuse_file_lock { /** * INIT request/reply flags * + * FUSE_POSIX_LOCKS: remote locking for POSIX file locks * FUSE_EXPORT_SUPPORT: filesystem handles lookups of "." and ".." * FUSE_DONT_MASK: don't apply umask to file mode on create operations + * FUSE_FLOCK_LOCKS: remote locking for BSD style file locks + * FUSE_AUTO_INVAL_DATA: automatically invalidate cached pages + * FUSE_DO_READDIRPLUS: do READDIRPLUS (READDIR+LOOKUP in one) + * FUSE_READDIRPLUS_AUTO: adaptive readdirplus + * FUSE_ASYNC_DIO: asynchronous direct I/O submission */ #define FUSE_ASYNC_READ (1 << 0) #define FUSE_POSIX_LOCKS (1 << 1) @@ -174,7 +200,10 @@ struct fuse_file_lock { #define FUSE_EXPORT_SUPPORT (1 << 4) #define FUSE_BIG_WRITES (1 << 5) #define FUSE_DONT_MASK (1 << 6) +#define FUSE_FLOCK_LOCKS (1 << 10) +#define FUSE_AUTO_INVAL_DATA (1 << 12) #define FUSE_DO_READDIRPLUS (1 << 13) +#define FUSE_READDIRPLUS_AUTO (1 << 14) #define FUSE_ASYNC_DIO (1 << 15) /** @@ -188,6 +217,7 @@ struct fuse_file_lock { * Release flags */ #define FUSE_RELEASE_FLUSH (1 << 0) +#define FUSE_RELEASE_FLOCK_UNLOCK (1 << 1) /** * Getattr flags @@ -220,6 +250,7 @@ struct fuse_file_lock { * FUSE_IOCTL_UNRESTRICTED: not restricted to well-formed ioctls, retry allowed * FUSE_IOCTL_RETRY: retry with new iovecs * FUSE_IOCTL_32BIT: 32bit ioctl + * FUSE_IOCTL_DIR: is a directory * * FUSE_IOCTL_MAX_IOV: maximum of in_iovecs + out_iovecs */ @@ -227,6 +258,7 @@ struct fuse_file_lock { #define FUSE_IOCTL_UNRESTRICTED (1 << 1) #define FUSE_IOCTL_RETRY (1 << 2) #define FUSE_IOCTL_32BIT (1 << 3) +#define FUSE_IOCTL_DIR (1 << 4) #define FUSE_IOCTL_MAX_IOV 256 @@ -290,6 +322,7 @@ enum fuse_notify_code { FUSE_NOTIFY_INVAL_ENTRY = 3, FUSE_NOTIFY_STORE = 4, FUSE_NOTIFY_RETRIEVE = 5, + FUSE_NOTIFY_DELETE = 6, FUSE_NOTIFY_CODE_MAX, }; @@ -559,7 +592,7 @@ struct fuse_poll_in { __u64 fh; __u64 kh; __u32 flags; - __u32 padding; + __u32 events; }; struct fuse_poll_out { @@ -631,6 +664,13 @@ struct fuse_notify_inval_entry_out { __u32 padding; }; +struct fuse_notify_delete_out { + __u64 parent; + __u64 child; + __u32 namelen; + __u32 padding; +}; + struct fuse_notify_store_out { __u64 nodeid; __u64 offset; |