aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@suse.cz>2009-07-08 12:17:58 -0400
committerMiklos Szeredi <mszeredi@suse.cz>2009-07-08 12:17:58 -0400
commit37d217f029a56a6d385f99773fb27dfcb51f9a46 (patch)
tree90b8cf1f1b77d8ff732dc2ee8ab032aaabfbdcd1
parent7a6d3c8b3049d07123628f2bf57127bba2cc878f (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.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/fuse.h b/include/linux/fuse.h
index b3700f0ac268..3e2925a34bf0 100644
--- a/include/linux/fuse.h
+++ b/include/linux/fuse.h
@@ -41,6 +41,26 @@
41 41
42#include <linux/types.h> 42#include <linux/types.h>
43 43
44/*
45 * Version negotiation:
46 *
47 * Both the kernel and userspace send the version they support in the
48 * INIT request and reply respectively.
49 *
50 * If the major versions match then both shall use the smallest
51 * of the two minor versions for communication.
52 *
53 * If the kernel supports a larger major version, then userspace shall
54 * reply with the major version it supports, ignore the rest of the
55 * INIT message and expect a new INIT message from the kernel with a
56 * matching major version.
57 *
58 * If the library supports a larger major version, then it shall fall
59 * back to the major protocol version sent by the kernel for
60 * communication and reply with that major version (and an arbitrary
61 * supported minor version).
62 */
63
44/** Version number of this interface */ 64/** Version number of this interface */
45#define FUSE_KERNEL_VERSION 7 65#define FUSE_KERNEL_VERSION 7
46 66