[Cluster-devel] [PATCH] Fix change nlink deadlock

From: Wendy Cheng <wcheng redhat com>

To: cluster-devel redhat com

Subject: [Cluster-devel] [PATCH] Fix change nlink deadlock

Date: Fri, 15 Dec 2006 09:50:44 -0500

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.

Patch passed a simulated test program created for this issue yesterday -
havn't really tried it out on installer yet. Will continue to installer
test today. Pass it up for a quick eyeball examine.