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

Reply via email to