On Wed, Jun 8, 2011 at 5:46 PM, liubo <liubo2009@cn.fujitsu.com>
wrote:> When we use reloc root to cow or copy a tree block, we do not set the
block''s
> owner, instead we set its header''s flag with
BTRFS_HEADER_FLAG_RELOC.
>
> So here we should check for root_key''s offset.
>
> Signed-off-by: Liu Bo <liubo2009@cn.fujitsu.com>
> ---
> fs/btrfs/extent-tree.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
> index 5b9b6b6..0bda273 100644
> --- a/fs/btrfs/extent-tree.c
> +++ b/fs/btrfs/extent-tree.c
> @@ -6160,7 +6160,7 @@ static noinline int walk_up_proc(struct
btrfs_trans_handle *trans,
> if (wc->flags[level + 1] &
BTRFS_BLOCK_FLAG_FULL_BACKREF)
> parent = path->nodes[level + 1]->start;
> else
> - BUG_ON(root->root_key.objectid !> +
BUG_ON(root->root_key.offset !>
btrfs_header_owner(path->nodes[level + 1]));
> }
>
This is wrong, all blocks with BTRFS_HEADER_FLAG_RELOC flag set should
uss full back references.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs"
in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html