summaryrefslogtreecommitdiff
path: root/fs/open.c
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@suse.cz>2012-05-21 19:30:16 +0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-06-01 20:12:00 +0400
commit78f71eff3c274f3907f4aa1bbe3267281ba1c603 (patch)
tree1ff09317eca03d269fe52b51a5ed23e2cb610e4b /fs/open.c
parent90ad1a8ecb9bfd5ff4503ac42cd049a97643ee51 (diff)
downloadlinux-78f71eff3c274f3907f4aa1bbe3267281ba1c603.tar.xz
vfs: do_dentry_open(): don't put filp
Move put_filp() out to __dentry_open(), the only caller now. Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/open.c')
-rw-r--r--fs/open.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/open.c b/fs/open.c
index 9daa1cea52fc..511c548b0997 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -747,7 +747,6 @@ cleanup_all:
f->f_path.dentry = NULL;
f->f_path.mnt = NULL;
cleanup_file:
- put_filp(f);
dput(dentry);
mntput(mnt);
return ERR_PTR(error);
@@ -765,6 +764,8 @@ static struct file *__dentry_open(struct dentry *dentry, struct vfsmount *mnt,
fput(res);
res = ERR_PTR(error);
}
+ } else {
+ put_filp(f);
}
return res;
}