[XFS] Fix regression in xfs_buf_rele dealing with non-hashed buffers, as
occur during log replay. Novell bug 145204, Fedora bug 177848. SGI-PV: 948860 SGI-Modid: xfs-linux-melb:xfs-kern:25064a Signed-off-by: Nathan Scott <nathans@sgi.com>
This commit is contained in:
parent
3a69c7dc6f
commit
fad3aa1e8e
1 changed files with 7 additions and 0 deletions
|
@ -822,6 +822,13 @@ xfs_buf_rele(
|
|||
|
||||
XB_TRACE(bp, "rele", bp->b_relse);
|
||||
|
||||
if (unlikely(!hash)) {
|
||||
ASSERT(!bp->b_relse);
|
||||
if (atomic_dec_and_test(&bp->b_hold))
|
||||
xfs_buf_free(bp);
|
||||
return;
|
||||
}
|
||||
|
||||
if (atomic_dec_and_lock(&bp->b_hold, &hash->bh_lock)) {
|
||||
if (bp->b_relse) {
|
||||
atomic_inc(&bp->b_hold);
|
||||
|
|
Loading…
Reference in a new issue