[GFS2] Fix change nlink deadlock
authorS. Wendy Cheng <wcheng@redhat.com>
Thu, 18 Jan 2007 20:56:34 +0000 (15:56 -0500)
committerSteven Whitehouse <swhiteho@redhat.com>
Mon, 5 Feb 2007 18:36:15 +0000 (13:36 -0500)
commit5509826f1e548d14bb888c1cb6e3bbf23f855770
tree20915fb965f5895f3a41361bdb6182ae10db242c
parente1d5b18ae92d0bbfe66dc2b4bab65006d32c5f7d
[GFS2] Fix change nlink deadlock

Bugzilla 215088

Fix deadlock in gfs2_change_nlink() while installing RHEL5 into GFS2
partition. The gfs2_rename() apparently needs block allocation for the
new name (into the directory) where it requires rg locks. At the same
time, while updating the nlink count for the replaced file,
gfs2_change_nlink() tries to return the inode meta-data back to resource
group where it needs rg locks too. Our logic doesn't allow process to
acquire these locks recursively by the same process  (RHEL installer)
that results a BUG call. This only happens within rename code path and
only if the destination file exists before the rename operation.

Signed-off-by: S. Wendy Cheng <wcheng@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/inode.c
fs/gfs2/inode.h
fs/gfs2/ops_inode.c