[GFS2] Reordering in deallocation to avoid recursive locking
authorSteven Whitehouse <swhiteho@redhat.com>
Fri, 28 Apr 2006 14:46:21 +0000 (10:46 -0400)
committerSteven Whitehouse <swhiteho@redhat.com>
Fri, 28 Apr 2006 14:46:21 +0000 (10:46 -0400)
commit363275216c1a1b0b82c8419310c194b8c26b9c27
tree476bb04ff32ac1724afa192f4950f4a39a0237f2
parentd26046bb0aff707aac38a9bf3dd56fa39b28a399
[GFS2] Reordering in deallocation to avoid recursive locking

Despite my earlier careful search, there was a recursive lock left
in the deallocation code. This removes it. It also should speed up
deallocation be reducing the number of locking operations which take
place by using two "try lock" operations on the two locks involved in
inode deallocation which allows us to grab the locks out of order
(compared with NFS which grabs the inode lock first and the iopen
lock later). It is ok for us to fail while doing this since if it
does fail it means that someone else is still using the inode and
thus it wouldn't be possible to deallocate anyway.

This fixes the bug reported to me by Rob Kenna.

Cc: Rob Kenna <rkenna@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/glock.c
fs/gfs2/inode.c
fs/gfs2/inode.h