aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/fuse.h
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2005-09-09 16:10:36 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-09-09 17:03:47 -0400
commit04730fef1f9c7277e5c730b193e681ac095b0507 (patch)
tree3694ea435eb38f10dadc5c8b6abd603a7e10f52e /include/linux/fuse.h
parent413ef8cb302511d8e995e2b0e5517ee1a65b9c77 (diff)
[PATCH] fuse: transfer readdir data through device
This patch removes a long lasting "hack" in FUSE, which used a separate channel (a file descriptor refering to a disk-file) to transfer directory contents from userspace to the kernel. The patch adds three new operations (OPENDIR, READDIR, RELEASEDIR), which have semantics and implementation exactly maching the respective file operations (OPEN, READ, RELEASE). This simplifies the directory reading code. Also disk space is not necessary, which can be important in embedded systems. 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/linux/fuse.h')
-rw-r--r--include/linux/fuse.h10
1 files changed, 4 insertions, 6 deletions
diff --git a/include/linux/fuse.h b/include/linux/fuse.h
index e9b814e16c58..cdfaa51b9018 100644
--- a/include/linux/fuse.h
+++ b/include/linux/fuse.h
@@ -70,7 +70,6 @@ enum fuse_opcode {
70 FUSE_SETATTR = 4, 70 FUSE_SETATTR = 4,
71 FUSE_READLINK = 5, 71 FUSE_READLINK = 5,
72 FUSE_SYMLINK = 6, 72 FUSE_SYMLINK = 6,
73 FUSE_GETDIR = 7,
74 FUSE_MKNOD = 8, 73 FUSE_MKNOD = 8,
75 FUSE_MKDIR = 9, 74 FUSE_MKDIR = 9,
76 FUSE_UNLINK = 10, 75 FUSE_UNLINK = 10,
@@ -88,7 +87,10 @@ enum fuse_opcode {
88 FUSE_LISTXATTR = 23, 87 FUSE_LISTXATTR = 23,
89 FUSE_REMOVEXATTR = 24, 88 FUSE_REMOVEXATTR = 24,
90 FUSE_FLUSH = 25, 89 FUSE_FLUSH = 25,
91 FUSE_INIT = 26 90 FUSE_INIT = 26,
91 FUSE_OPENDIR = 27,
92 FUSE_READDIR = 28,
93 FUSE_RELEASEDIR = 29
92}; 94};
93 95
94/* Conservative buffer size for the client */ 96/* Conservative buffer size for the client */
@@ -120,10 +122,6 @@ struct fuse_attr_out {
120 struct fuse_attr attr; 122 struct fuse_attr attr;
121}; 123};
122 124
123struct fuse_getdir_out {
124 __u32 fd;
125};
126
127struct fuse_mknod_in { 125struct fuse_mknod_in {
128 __u32 mode; 126 __u32 mode;
129 __u32 rdev; 127 __u32 rdev;