From 1a906129217b5e43f1f05bcc35e95c37b992937a Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Mon, 28 Nov 2005 16:31:40 +0000 Subject: [PATCH] fix --- kernel/dir.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/dir.c b/kernel/dir.c index 63cc944..7e92f67 100644 --- a/kernel/dir.c +++ b/kernel/dir.c @@ -257,7 +257,6 @@ static int fuse_create_open(struct inode *dir, struct dentry *entry, int mode, req->out.args[1].value = &outopen; request_send(fc, req); err = req->out.h.error; - ff->fh = outopen.fh; if (err) { if (err == -ENOSYS) fc->no_create = 1; @@ -273,15 +272,16 @@ static int fuse_create_open(struct inode *dir, struct dentry *entry, int mode, err = -ENOMEM; if (!inode) { flags &= ~(O_CREAT | O_EXCL | O_TRUNC); + ff->fh = outopen.fh; fuse_send_release(fc, ff, outentry.nodeid, NULL, flags, 0); goto out_put_request; } fuse_put_request(fc, req); - d_instantiate(entry, inode); fuse_change_timeout(entry, &outentry); file = lookup_instantiate_filp(nd, entry, generic_file_open); if (IS_ERR(file)) { + ff->fh = outopen.fh; fuse_send_release(fc, ff, outentry.nodeid, inode, flags, 0); return PTR_ERR(file); } -- 2.30.2