summaryrefslogtreecommitdiffstats
path: root/fs/xfs/linux-2.6/xfs_buf.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-01-31 19:30:48 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-31 19:30:48 -0800
commitfa3c791d85aa9a363dd72dd834b73b79252ef44e (patch)
tree082505d99fd937a818e36667a506dd2389a4f864 /fs/xfs/linux-2.6/xfs_buf.c
parentbd3f8f2b12bcf4ea25c89b84adeaafad232662c8 (diff)
parentfad3aa1e8e2e4123a19b926fefd91ec63dd56497 (diff)
downloadblackbird-op-linux-fa3c791d85aa9a363dd72dd834b73b79252ef44e.tar.gz
blackbird-op-linux-fa3c791d85aa9a363dd72dd834b73b79252ef44e.zip
Merge git://oss.sgi.com:8090/oss/git/xfs-2.6
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_buf.c')
-rw-r--r--fs/xfs/linux-2.6/xfs_buf.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c
index e44b7c1a3a36..a36a8e3b703f 100644
--- a/fs/xfs/linux-2.6/xfs_buf.c
+++ b/fs/xfs/linux-2.6/xfs_buf.c
@@ -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);
OpenPOWER on IntegriCloud