This patchset can be fetched from github: https://github.com/adam900710/btrfs-progs/tree/skinny_bg_tree Which is based on david/devel branch. HEAD is: bdb42fb63382e8aca6bd02fd04a28e415408d4ea (david/devel) btrfs-progs: tests: Test backup root retention logic This patchset provides the needed user space infrastructure for SKINNY_BG_TREE feature. Since it's an new incompatible feature, unlike SKINNY_METADATA, btrfs-progs is needed to convert existing fs (unmounted) to new format. Or determined at mkfs time. For the performance improvement, please check the kernel patchset cover letter or the last patch. (SPOILER ALERT: It's super-duper fast, even faster than regular bg tree) The chanllege here is, even we have some patches merged into devel branch, due to the change of definition of key->offset for block group item, we have to refactor more functions to implement SKINNY_BG_TREE. Qu Wenruo (7): btrfs-progs: check/lowmem: Lookup block group item in a seperate function btrfs-progs: Enable read-write ability for 'skinny_bg_tree' feature btrfs-progs: mkfs: Introduce -O skinny-bg-tree btrfs-progs: dump-tree/dump-super: Introduce support for skinny bg tree btrfs-progs: Refactor btrfs_new_block_group_record() to accept parameters directly btrfs-progs: check: Introduce support for bg-tree feature btrfs-progs: btrfstune: Allow to enable bg-tree feature offline Documentation/btrfstune.asciidoc | 6 + btrfsck.h | 4 +- btrfstune.c | 45 +++++- check/common.h | 4 +- check/main.c | 63 ++++++-- check/mode-lowmem.c | 137 ++++++++++++---- cmds/inspect-dump-super.c | 3 +- cmds/inspect-dump-tree.c | 5 + cmds/rescue-chunk-recover.c | 6 +- common/fsfeatures.c | 6 + ctree.h | 18 ++- disk-io.c | 21 ++- extent-tree.c | 269 +++++++++++++++++++++++++++++-- mkfs/common.c | 5 +- mkfs/main.c | 25 +++ print-tree.c | 4 + transaction.c | 1 + 17 files changed, 549 insertions(+), 73 deletions(-) -- 2.23.0
