[PATCH 0/8] btrfs: extent tree v2, support for global roots

Josef Bacik
2021-11-05T20:49:50Z

Hello,

This is the kernel side of the global roots and block group root support. The
motivation for this change is described in the progs patches. The important
part here is I've disabled qgroups and balance for now, this support will be
added back later. I've also changed global block rsv size calculation, but it's
exactly the same result for !EXTENT_TREE_V2. And finally there's the support
for loading the roots. This doesn't panic and doesn't introduce any performance
regressions. I've also hidden the support behind CONFIG_BTRFS_DEBUG so it
doesn't get used accidentally. Thanks,

Josef

Josef Bacik (8):
btrfs: add definition for EXTENT_TREE_V2
btrfs: disable balance for extent tree v2 for now
btrfs: disable qgroups in extent tree v2
btrfs: use metadata usage for global block rsv in extent tree v2
btrfs: tree-checker: don't fail on empty extent roots for extent tree
v2
btrfs: abstract out loading the tree root
btrfs: add code to support the block group root
btrfs: add support for multiple global roots

fs/btrfs/block-group.c | 11 +-
fs/btrfs/block-group.h | 1 +
fs/btrfs/block-rsv.c | 16 +--
fs/btrfs/ctree.h | 46 ++++++++-
fs/btrfs/disk-io.c | 178 +++++++++++++++++++++++---------
fs/btrfs/disk-io.h | 2 +
fs/btrfs/free-space-tree.c | 2 +
fs/btrfs/print-tree.c | 1 +
fs/btrfs/qgroup.c | 6 ++
fs/btrfs/sysfs.c | 5 +-
fs/btrfs/transaction.c | 15 +++
fs/btrfs/tree-checker.c | 35 ++++++-
fs/btrfs/volumes.c | 6 ++
include/trace/events/btrfs.h | 1 +
include/uapi/linux/btrfs.h | 1 +
include/uapi/linux/btrfs_tree.h | 3 +
16 files changed, 266 insertions(+), 63 deletions(-)

--
2.26.3