Description of problem: I discovered this bug while browsing the code. Function link_dinode in inode.c of GFS2 has an incorrect error path. If an error is returned by function gfs2_diradd_alloc_required, the code will take the wrong error patch and forget to unlock the quota file. Subsequent similar operations will hang because the quota file is locked and never unlocked. Version-Release number of selected component (if applicable): RHEL5.2 How reproducible: Unknown Steps to Reproduce: 1. 2. 3. Actual results: Hang Expected results: No hang Additional info: I already submitted the fix for this upstream, and it's been accepted.
Created attachment 292390 [details] Upstream patch This is the upstream version of the patch.
One-line fix, but I'll let management decide whether to get this into 5.2 or 5.3. For now I'll set the flags and assume 5.3 accordingly. It's unknown how likely this will hit. I tried a few things this morning and didn't seem to hit it, so maybe it's unlikely. If it does hit, it will likely cause a hang though.
Oops. I just discovered I accidentally included this fix in the 253990 (performance) bugzilla that has gone into RHEL5.2. So this does not need fixing anymore. Closing it out as CURRENTRELEASE.