aboutsummaryrefslogtreecommitdiffstats
path: root/fs/fuse/fuse_i.h
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2005-11-07 03:59:51 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-07 10:53:42 -0500
commitfd72faac95d7e47610e981d7ed7b3c1529e55c88 (patch)
tree65cde1eb6958f410c4b4c72e322fd59db463150f /fs/fuse/fuse_i.h
parent31d40d74b402a6fa18a006fb3745f64609f35b77 (diff)
[PATCH] FUSE: atomic create+open
This patch adds an atomic create+open operation. This does not yet work if the file type changes between lookup and create+open, but solves the permission checking problems for the separte create and open methods. 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 'fs/fuse/fuse_i.h')
-rw-r--r--fs/fuse/fuse_i.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
index c4e8c3b47982..0ea5301f86be 100644
--- a/fs/fuse/fuse_i.h
+++ b/fs/fuse/fuse_i.h
@@ -269,6 +269,9 @@ struct fuse_conn {
269 /** Is access not implemented by fs? */ 269 /** Is access not implemented by fs? */
270 unsigned no_access : 1; 270 unsigned no_access : 1;
271 271
272 /** Is create not implemented by fs? */
273 unsigned no_create : 1;
274
272 /** Backing dev info */ 275 /** Backing dev info */
273 struct backing_dev_info bdi; 276 struct backing_dev_info bdi;
274}; 277};
@@ -340,6 +343,17 @@ size_t fuse_send_read_common(struct fuse_req *req, struct file *file,
340 */ 343 */
341int fuse_open_common(struct inode *inode, struct file *file, int isdir); 344int fuse_open_common(struct inode *inode, struct file *file, int isdir);
342 345
346struct fuse_file *fuse_file_alloc(void);
347void fuse_file_free(struct fuse_file *ff);
348void fuse_finish_open(struct inode *inode, struct file *file,
349 struct fuse_file *ff, struct fuse_open_out *outarg);
350
351/**
352 * Send a RELEASE request
353 */
354void fuse_send_release(struct fuse_conn *fc, struct fuse_file *ff,
355 u64 nodeid, struct inode *inode, int flags, int isdir);
356
343/** 357/**
344 * Send RELEASE or RELEASEDIR request 358 * Send RELEASE or RELEASEDIR request
345 */ 359 */