On Wed, Jun 8, 2011 at 5:46 PM, liubo <liubo2...@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 <liubo2...@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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to