aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Miklos Szeredi <miklos@szeredi.hu>2005-11-28 16:31:40 +0000
committerGravatar Miklos Szeredi <miklos@szeredi.hu>2005-11-28 16:31:40 +0000
commit1a906129217b5e43f1f05bcc35e95c37b992937a (patch)
treec2a49470a47941952f0cc550172b6adf5206843b
parentead7f10b6dffea1df237a65180a2300c5a344ebf (diff)
fix
-rw-r--r--kernel/dir.c4
1 files 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);
}