Btrfs: Fix BUG_ON for fs converted from extN
authorYan, Zheng <zheng.yan@oracle.com>
Mon, 31 May 2010 09:04:46 +0000 (09:04 +0000)
committerChris Mason <chris.mason@oracle.com>
Fri, 11 Jun 2010 19:48:35 +0000 (15:48 -0400)
Tree blocks can live in data block groups in FS converted from extN.
So it's easy to trigger the BUG_ON.

Signed-off-by: Yan Zheng <zheng.yan@oracle.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/extent-tree.c

index 6c14101506e10d59a0bfbe9b19673ca1b5777f1c..a46b64de8f0218dab9190b4451dc7b763cbb2a05 100644 (file)
@@ -4360,7 +4360,8 @@ void btrfs_free_tree_block(struct btrfs_trans_handle *trans,
 
        block_rsv = get_block_rsv(trans, root);
        cache = btrfs_lookup_block_group(root->fs_info, buf->start);
-       BUG_ON(block_rsv->space_info != cache->space_info);
+       if (block_rsv->space_info != cache->space_info)
+               goto out;
 
        if (btrfs_header_generation(buf) == trans->transid) {
                if (root->root_key.objectid != BTRFS_TREE_LOG_OBJECTID) {