diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2009-07-16 11:07:31 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2009-07-16 11:07:31 +0000 |
commit | 3846394e7ad0a85a0eee3346444befa81f4425af (patch) | |
tree | 2a5fbdf198100bc6d7f92f9dca46ba62cbebad9f /include | |
parent | 37a90f29e8609951a18e5190d1fd3659e3aee135 (diff) | |
download | android_external_fuse-3846394e7ad0a85a0eee3346444befa81f4425af.tar.gz android_external_fuse-3846394e7ad0a85a0eee3346444befa81f4425af.tar.bz2 android_external_fuse-3846394e7ad0a85a0eee3346444befa81f4425af.zip |
* Clarify how the protocol version should be negotiated between
kernel and userspace. Notably libfuse didn't correctly handle the
case when the supported major versions didn't match
Diffstat (limited to 'include')
-rw-r--r-- | include/fuse_kernel.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/include/fuse_kernel.h b/include/fuse_kernel.h index dac35d8..bd73630 100644 --- a/include/fuse_kernel.h +++ b/include/fuse_kernel.h @@ -67,6 +67,26 @@ #define __u32 uint32_t #define __s32 int32_t +/* + * Version negotiation: + * + * Both the kernel and userspace send the version they support in the + * INIT request and reply respectively. + * + * If the major versions match then both shall use the smallest + * of the two minor versions for communication. + * + * If the kernel supports a larger major version, then userspace shall + * reply with the major version it supports, ignore the rest of the + * INIT message and expect a new INIT message from the kernel with a + * matching major version. + * + * If the library supports a larger major version, then it shall fall + * back to the major protocol version sent by the kernel for + * communication and reply with that major version (and an arbitrary + * supported minor version). + */ + /** Version number of this interface */ #define FUSE_KERNEL_VERSION 7 |