summaryrefslogtreecommitdiffstats
path: root/fs/gfs2/inode.c
diff options
context:
space:
mode:
authorSteven Whitehouse <swhiteho@redhat.com>2006-04-20 22:57:23 +0200
committerSteven Whitehouse <swhiteho@redhat.com>2006-04-20 22:57:23 +0200
commit190562bd84a484bf6590425aa2bb4d6d611c112b (patch)
treedd99bcd847f8d2376f7836ea9d861a31d1021c71 /fs/gfs2/inode.c
parent[GFS2] Use vmalloc() in dir code (diff)
downloadlinux-190562bd84a484bf6590425aa2bb4d6d611c112b.tar.xz
linux-190562bd84a484bf6590425aa2bb4d6d611c112b.zip
[GFS2] Fix a bug: scheduling under a spinlock
At some stage, a mutex was added to gfs2_glock_put() without checking all its call sites. Two of them were called from under a spinlock causing random delays at various points and crashes. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/inode.c')
-rw-r--r--fs/gfs2/inode.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
index 6140c2434e85..fb5a4d06e926 100644
--- a/fs/gfs2/inode.c
+++ b/fs/gfs2/inode.c
@@ -409,8 +409,8 @@ void gfs2_inode_destroy(struct gfs2_inode *ip)
spin_lock(&io_gl->gl_spin);
io_gl->gl_object = NULL;
- gfs2_glock_put(i_gl);
spin_unlock(&io_gl->gl_spin);
+ gfs2_glock_put(i_gl);
gfs2_glock_dq_uninit(&ip->i_iopen_gh);