diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2006-02-07 01:47:12 -0500 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2006-02-07 01:47:12 -0500 |
commit | 3c9b3a8575b4f2551e3b5b74ffa1c3559c6338eb (patch) | |
tree | 7f8d84353852401ec74e005f6f0b1eb958b9a70d /fs/xfs/linux-2.6/xfs_buf.c | |
parent | c0d3c0c0ce94d3db893577ae98e64414d92e49d8 (diff) | |
parent | c03296a868ae7c91aa2d8b372184763b18f16d7a (diff) |
Merge branch 'master'
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_buf.c')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_buf.c | 8 |
1 files changed, 8 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..bfb4f2917bb6 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( | |||
822 | 822 | ||
823 | XB_TRACE(bp, "rele", bp->b_relse); | 823 | XB_TRACE(bp, "rele", bp->b_relse); |
824 | 824 | ||
825 | if (unlikely(!hash)) { | ||
826 | ASSERT(!bp->b_relse); | ||
827 | if (atomic_dec_and_test(&bp->b_hold)) | ||
828 | xfs_buf_free(bp); | ||
829 | return; | ||
830 | } | ||
831 | |||
825 | if (atomic_dec_and_lock(&bp->b_hold, &hash->bh_lock)) { | 832 | if (atomic_dec_and_lock(&bp->b_hold, &hash->bh_lock)) { |
826 | if (bp->b_relse) { | 833 | if (bp->b_relse) { |
827 | atomic_inc(&bp->b_hold); | 834 | atomic_inc(&bp->b_hold); |
@@ -1514,6 +1521,7 @@ xfs_mapping_buftarg( | |||
1514 | struct address_space *mapping; | 1521 | struct address_space *mapping; |
1515 | static struct address_space_operations mapping_aops = { | 1522 | static struct address_space_operations mapping_aops = { |
1516 | .sync_page = block_sync_page, | 1523 | .sync_page = block_sync_page, |
1524 | .migratepage = fail_migrate_page, | ||
1517 | }; | 1525 | }; |
1518 | 1526 | ||
1519 | inode = new_inode(bdev->bd_inode->i_sb); | 1527 | inode = new_inode(bdev->bd_inode->i_sb); |