GFS2: Fix ref count bug relating to atomic_open
In the case that atomic_open calls finish_no_open() with the dentry that was supplied to gfs2_atomic_open() an extra reference count is required. This patch fixes that issue preventing a bug trap triggering at umount time. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
This commit is contained in:
parent
e3c4269d13
commit
ea0341e071
1 changed files with 4 additions and 1 deletions
|
@ -1171,8 +1171,11 @@ static int gfs2_atomic_open(struct inode *dir, struct dentry *dentry,
|
||||||
if (d != NULL)
|
if (d != NULL)
|
||||||
dentry = d;
|
dentry = d;
|
||||||
if (dentry->d_inode) {
|
if (dentry->d_inode) {
|
||||||
if (!(*opened & FILE_OPENED))
|
if (!(*opened & FILE_OPENED)) {
|
||||||
|
if (d == NULL)
|
||||||
|
dget(dentry);
|
||||||
return finish_no_open(file, dentry);
|
return finish_no_open(file, dentry);
|
||||||
|
}
|
||||||
dput(d);
|
dput(d);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue