diff options
author | Yan, Zheng <zheng.yan@oracle.com> | 2010-05-31 11:04:46 +0200 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2010-06-11 21:48:35 +0200 |
commit | 3bf84a5a834d13e7c5c3e8e5b5c6b26012118dd8 (patch) | |
tree | 7cc6e70cb2cc175163472141b1ca2dfc4c72eddd /fs/btrfs/extent-tree.c | |
parent | Btrfs: Fix null dereference in relocation.c (diff) | |
download | linux-3bf84a5a834d13e7c5c3e8e5b5c6b26012118dd8.tar.xz linux-3bf84a5a834d13e7c5c3e8e5b5c6b26012118dd8.zip |
Btrfs: Fix BUG_ON for fs converted from extN
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>
Diffstat (limited to 'fs/btrfs/extent-tree.c')
-rw-r--r-- | fs/btrfs/extent-tree.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 6c14101506e1..a46b64de8f02 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -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) { |