On Tue, Oct 14, 2008 at 08:50:18AM -0400, Josef Bacik
wrote:> Hello,
>
> I''m having problems wrapping my head around the purpose of the
extent root. It
> seems we can allocate space from the main root, and the extent objects are
> inserted into that tree, but we can also make allocations out of the extent
> root, and the extent objects are inserted into that tree. What is the
purpose
> of the extent tree? The inserts/deletions from the extent tree only happen
via
> del_pending_extents and finish_current_insert, but it seems I end up with
> extents that are being deleted from the extent_tree and inserted onto the
normal
> root (I''m killing alloc_mutex so I''m getting weird
problems). I figure instead
> of screwing around with the locking until it works its probably best I
> understand what exactly we''re doing with allocations on both
trees, and
> hopefully then I can fix this weirdness. Thank you,
>
nm, now that i''ve thought about it i get it. all extent keys go into
the extent
root, but extent tree allocations only happen when we COW a block in the extent
tree or allocate a new block, which is the root == extent_root case, and all
normal allocations will just be from the normal root. Thanks,
Josef
--
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