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