diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2005-09-09 16:10:29 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-09 17:03:45 -0400 |
commit | 9e6268db496a2592e89457537ea54a496feabb77 (patch) | |
tree | e01d0d7585886fd318b6f16de9329349a629e3f8 /include | |
parent | e5e5558e923f35839108a12718494ecb73fb782f (diff) |
[PATCH] FUSE - read-write operations
This patch adds the write filesystem operations of FUSE.
The following operations are added:
o setattr
o symlink
o mknod
o mkdir
o create
o unlink
o rmdir
o rename
o link
Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/fuse.h | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/include/linux/fuse.h b/include/linux/fuse.h index 21b9ba16f8d5..19d69a3e1623 100644 --- a/include/linux/fuse.h +++ b/include/linux/fuse.h | |||
@@ -11,7 +11,7 @@ | |||
11 | #include <asm/types.h> | 11 | #include <asm/types.h> |
12 | 12 | ||
13 | /** Version number of this interface */ | 13 | /** Version number of this interface */ |
14 | #define FUSE_KERNEL_VERSION 6 | 14 | #define FUSE_KERNEL_VERSION 7 |
15 | 15 | ||
16 | /** Minor version number of this interface */ | 16 | /** Minor version number of this interface */ |
17 | #define FUSE_KERNEL_MINOR_VERSION 1 | 17 | #define FUSE_KERNEL_MINOR_VERSION 1 |
@@ -52,12 +52,28 @@ struct fuse_kstatfs { | |||
52 | __u32 namelen; | 52 | __u32 namelen; |
53 | }; | 53 | }; |
54 | 54 | ||
55 | #define FATTR_MODE (1 << 0) | ||
56 | #define FATTR_UID (1 << 1) | ||
57 | #define FATTR_GID (1 << 2) | ||
58 | #define FATTR_SIZE (1 << 3) | ||
59 | #define FATTR_ATIME (1 << 4) | ||
60 | #define FATTR_MTIME (1 << 5) | ||
61 | #define FATTR_CTIME (1 << 6) | ||
62 | |||
55 | enum fuse_opcode { | 63 | enum fuse_opcode { |
56 | FUSE_LOOKUP = 1, | 64 | FUSE_LOOKUP = 1, |
57 | FUSE_FORGET = 2, /* no reply */ | 65 | FUSE_FORGET = 2, /* no reply */ |
58 | FUSE_GETATTR = 3, | 66 | FUSE_GETATTR = 3, |
67 | FUSE_SETATTR = 4, | ||
59 | FUSE_READLINK = 5, | 68 | FUSE_READLINK = 5, |
69 | FUSE_SYMLINK = 6, | ||
60 | FUSE_GETDIR = 7, | 70 | FUSE_GETDIR = 7, |
71 | FUSE_MKNOD = 8, | ||
72 | FUSE_MKDIR = 9, | ||
73 | FUSE_UNLINK = 10, | ||
74 | FUSE_RMDIR = 11, | ||
75 | FUSE_RENAME = 12, | ||
76 | FUSE_LINK = 13, | ||
61 | FUSE_STATFS = 17, | 77 | FUSE_STATFS = 17, |
62 | FUSE_INIT = 26 | 78 | FUSE_INIT = 26 |
63 | }; | 79 | }; |
@@ -66,6 +82,7 @@ enum fuse_opcode { | |||
66 | #define FUSE_MAX_IN 8192 | 82 | #define FUSE_MAX_IN 8192 |
67 | 83 | ||
68 | #define FUSE_NAME_MAX 1024 | 84 | #define FUSE_NAME_MAX 1024 |
85 | #define FUSE_SYMLINK_MAX 4096 | ||
69 | 86 | ||
70 | struct fuse_entry_out { | 87 | struct fuse_entry_out { |
71 | __u64 nodeid; /* Inode ID */ | 88 | __u64 nodeid; /* Inode ID */ |
@@ -79,7 +96,7 @@ struct fuse_entry_out { | |||
79 | }; | 96 | }; |
80 | 97 | ||
81 | struct fuse_forget_in { | 98 | struct fuse_forget_in { |
82 | __u64 version; | 99 | __u64 nlookup; |
83 | }; | 100 | }; |
84 | 101 | ||
85 | struct fuse_attr_out { | 102 | struct fuse_attr_out { |
@@ -93,6 +110,28 @@ struct fuse_getdir_out { | |||
93 | __u32 fd; | 110 | __u32 fd; |
94 | }; | 111 | }; |
95 | 112 | ||
113 | struct fuse_mknod_in { | ||
114 | __u32 mode; | ||
115 | __u32 rdev; | ||
116 | }; | ||
117 | |||
118 | struct fuse_mkdir_in { | ||
119 | __u32 mode; | ||
120 | }; | ||
121 | |||
122 | struct fuse_rename_in { | ||
123 | __u64 newdir; | ||
124 | }; | ||
125 | |||
126 | struct fuse_link_in { | ||
127 | __u64 oldnodeid; | ||
128 | }; | ||
129 | |||
130 | struct fuse_setattr_in { | ||
131 | __u32 valid; | ||
132 | struct fuse_attr attr; | ||
133 | }; | ||
134 | |||
96 | struct fuse_statfs_out { | 135 | struct fuse_statfs_out { |
97 | struct fuse_kstatfs st; | 136 | struct fuse_kstatfs st; |
98 | }; | 137 | }; |