diff options
author | Miklos Szeredi <mszeredi@suse.cz> | 2009-07-08 18:17:58 +0200 |
---|---|---|
committer | Miklos Szeredi <mszeredi@suse.cz> | 2009-07-08 18:17:58 +0200 |
commit | 37d217f029a56a6d385f99773fb27dfcb51f9a46 (patch) | |
tree | 90b8cf1f1b77d8ff732dc2ee8ab032aaabfbdcd1 | |
parent | 7a6d3c8b3049d07123628f2bf57127bba2cc878f (diff) |
fuse: document protocol version negotiation
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.
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
-rw-r--r-- | include/linux/fuse.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/fuse.h b/include/linux/fuse.h index b3700f0ac26..3e2925a34bf 100644 --- a/include/linux/fuse.h +++ b/include/linux/fuse.h @@ -41,6 +41,26 @@ #include <linux/types.h> +/* + * 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 |