aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/fs/gfs2/inode.c
diff options
context:
space:
mode:
authorBob Peterson <rpeterso@redhat.com>2015-12-04 13:04:34 -0600
committerBob Peterson <rpeterso@redhat.com>2015-12-18 11:04:46 -0600
commit6cc4b6e801c725321e9f63ca7c2d00af8df24699 (patch)
tree9753131b4c37ac330f5398a82fc46a6ac537c95e /fs/gfs2/inode.c
parentGFS2: Always use iopen glock for gl_deletes (diff)
downloadwireguard-linux-6cc4b6e801c725321e9f63ca7c2d00af8df24699.tar.xz
wireguard-linux-6cc4b6e801c725321e9f63ca7c2d00af8df24699.zip
GFS2: Don't do glock put on when inode creation fails
Currently the error path of function gfs2_inode_lookup calls function gfs2_glock_put corresponding to an earlier call to gfs2_glock_get for the inode glock. That's wrong because the error path also calls iget_failed() which eventually calls iput, which eventually calls gfs2_evict_inode, which does another gfs2_glock_put. This double-put can cause the glock reference count to get off. Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Diffstat (limited to 'fs/gfs2/inode.c')
-rw-r--r--fs/gfs2/inode.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
index 87fa5992e12a..009b551a5d8c 100644
--- a/fs/gfs2/inode.c
+++ b/fs/gfs2/inode.c
@@ -198,7 +198,6 @@ fail_iopen:
gfs2_glock_put(io_gl);
fail_put:
ip->i_gl->gl_object = NULL;
- gfs2_glock_put(ip->i_gl);
fail:
iget_failed(inode);
return ERR_PTR(error);