[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>
This commit is contained in:

committed by
Linus Torvalds

parent
31d40d74b4
commit
fd72faac95
@@ -184,6 +184,13 @@ static void request_end(struct fuse_conn *fc, struct fuse_req *req)
|
||||
fuse_putback_request() */
|
||||
for (i = 1; i < FUSE_MAX_OUTSTANDING; i++)
|
||||
up(&fc->outstanding_sem);
|
||||
} else if (req->in.h.opcode == FUSE_RELEASE && req->inode == NULL) {
|
||||
/* Special case for failed iget in CREATE */
|
||||
u64 nodeid = req->in.h.nodeid;
|
||||
__fuse_get_request(req);
|
||||
fuse_reset_request(req);
|
||||
fuse_send_forget(fc, req, nodeid, 1);
|
||||
putback = 0;
|
||||
}
|
||||
if (putback)
|
||||
fuse_putback_request(fc, req);
|
||||
|
Reference in New Issue
Block a user