Thread (42 messages) 42 messages, 5 authors, 2021-11-09

Re: [PATCH 00/20] btrfs-progs: extent tree v2 global root support prep work

From: Qu Wenruo <hidden>
Date: 2021-11-06 00:55:41


On 2021/11/6 04:28, Josef Bacik wrote:
Hello,

This is a series of patches to do all the prep work needed to support extent
tree v2.  These patches are independent of the actual extent tree v2 support,
some of them are fixes,
First half are mostly good, as they are really fixes and independent
refactors.
some of them are purely to pave the way for the global
root support.  These patches are mostly around stopping direct access of
->extent_root/->csum_root/->free_space_root, putting these roots into a rb_tree,
and changing the code to look up the roots in the rb_tree instead of accessing
them directly.  There are a variety of fixes to help make this easier, mostly
removing access to these roots that are strictly necessary.  Thanks,
But the later part for indirect access to previously global trees are
somewhat questionable.

The idea of rb-tree caching these trees are no problem, but the callers
are still passing place holder values to these helpers.

For current extent-tree, we can pass whatever values and get the root we
want, but that also means, we need another round of patches to fix all
the place holders to make them really extent-tree-v2 compatible.

Thus I'd prefer to see these helpers are called in a proper way in one
go, which is not really feasible to test in current preparation form.

Maybe it would be better to put these patches with the real
extent-tree-v2 code?

Thanks,
Qu
Josef

Josef Bacik (20):
   btrfs-progs: simplify btrfs_make_block_group
   btrfs-progs: check: don't walk down non fs-trees for qgroup check
   btrfs-progs: filesystem-show: close ctree once we're done
   btrfs-progs: add a helper for setting up a root node
   btrfs-progs: btrfs-shared: stop passing root to csum related functions
   btrfs-progs: check: stop passing csum root around
   btrfs-progs: stop accessing ->csum_root directly
   btrfs-progs: image: keep track of seen blocks when walking trees
   btrfs-progs: common: move btrfs_fix_block_accounting to repair.c
   btrfs-progs: check: abstract out the used marking helpers
   btrfs-progs: check: move btrfs_mark_used_tree_blocks to common
   btrfs-progs: mark reloc roots as used
   btrfs-progs: stop accessing ->extent_root directly
   btrfs-progs: stop accessing ->free_space_root directly
   btrfs-progs: track csum, extent, and free space trees in a rb tree
   btrfs-progs: check: make reinit work per found root item
   btrfs-progs: check: check the global roots for uptodate root nodes
   btrfs-progs: check: check all of the csum roots
   btrfs-progs: check: fill csum root from all extent roots
   btrfs-progs: common: search all extent roots for marking used space

  btrfs-corrupt-block.c           |  15 +-
  btrfs-map-logical.c             |   9 +-
  btrfstune.c                     |   2 +-
  check/main.c                    | 223 ++++++++++++++------
  check/mode-common.c             | 132 +-----------
  check/mode-lowmem.c             |  72 ++++---
  check/qgroup-verify.c           |   6 +-
  cmds/filesystem.c               |  19 +-
  cmds/rescue-chunk-recover.c     |  35 ++--
  common/repair.c                 | 230 +++++++++++++++++++++
  common/repair.h                 |   5 +
  convert/main.c                  |   5 +-
  image/main.c                    |  14 +-
  kernel-shared/backref.c         |  10 +-
  kernel-shared/ctree.h           |  10 +-
  kernel-shared/disk-io.c         | 356 +++++++++++++++++++++++---------
  kernel-shared/disk-io.h         |   8 +-
  kernel-shared/extent-tree.c     | 159 ++++----------
  kernel-shared/file-item.c       |   6 +-
  kernel-shared/free-space-tree.c |  54 +++--
  kernel-shared/volumes.c         |   3 +-
  kernel-shared/zoned.c           |   2 +-
  mkfs/main.c                     |  29 ++-
  mkfs/rootdir.c                  |   2 +-
  24 files changed, 892 insertions(+), 514 deletions(-)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help