Ping again. Since David is planning to merge qgroup patchset, this feature would greatly improve test coverage.
Thanks, Qu On 2018年01月11日 14:04, Qu Wenruo wrote: > Ping? > > Or do I need to rebase the patchset? > > Thanks, > Qu > > On 2017年11月07日 16:42, Qu Wenruo wrote: >> Can be fetched from github: >> https://github.com/adam900710/btrfs-progs/tree/mkfs_qgroup >> >> This patchset adds quota support, which means the result fs will have >> quota enabled by default, and its accounting is already consistent, no >> manually rescan or quota enable is needed. >> >> The overall design of such support is: >> 1) Create needed tree >> Both btrfs_root and real root item and tree root leaf. >> For this, a new infrastructure, btrfs_create_tree(), is added for >> this. >> >> 2) Fill quota root with basic skeleton >> Only 3 items are really needed >> a) global quota status item >> b) quota info for specified qgroup >> c) quota limit for specified qgroup >> >> Currently only 0/5 qgroup is passed. >> If we're going to support extra subvolume at mkfs time, just pass the >> subvolume id into insert_qgroup_items(). >> >> The content doesn't matter at all. >> >> 3) Repair qgroups using infrastructure from qgroup-verify >> In fact, qgroup repair is just offline rescan. >> Although the original qgroup-verify infrastructure is mostly noisy, >> modify it a little to make it silent to function as offline quota >> rescan. >> >> And such support is mainly designed for developers and QA guys. >> >> As to enable quota, before we must normally mount the fs, enable quota >> (and rescan if needed). >> This ioctl based procedure is not common, and fstests doesn't provide >> such support. >> >> There are several attempts to make fstests to support it, but due to >> different reasons, all these attempts failed. >> >> To make it easier to test all existing test cases with btrfs quota >> enabled, the current best method is to support quota at mkfs time, and >> here comes the patchset. >> >> >> BTW with -R|--runtime-features, we have several possible target to add. >> Not limited to such ioctl based operation, but also mount option based >> ones. >> Like space-cache-tree (space_cache=v2). >> >> >> Qu Wenruo (12): >> btrfs-progs: qgroup-verify: Also repair qgroup status version >> btrfs-progs: qgroup-verify: Use fs_info->readonly to check if we >> should repair qgroups >> btrfs-progs: qgroup-verify: Move qgroup classification out of >> report_qgroups >> btrfs-progs: qgroup-verify: Allow repair_qgroups function to do silent >> repair >> btrfs-progs: ctree: Introduce function to create an empty tree >> btrfs-progs: mkfs: Introduce function to insert qgroup info and limit >> items >> >> ^^^ Above patches are not modified at all ^^^ >> vvv Modification starts below vvv >> >> btrfs-progs: mkfs: Introduce function to setup quota root and rescan >> btrfs-progs: fsfeatures: Introduce a new set of features, >> runtime_features >> btrfs-progs: mkfs: Introduce --runtime-features option >> btrfs-progs: mkfs: Introduce quota runtime feature >> btrfs-progs: test/mkfs: Add test case for -R quota option >> btrfs-progs: test/mkfs: Add test case for --rootdir and -R quota >> >> Documentation/mkfs.btrfs.asciidoc | 23 +++ >> cmds-check.c | 2 +- >> convert/main.c | 4 +- >> ctree.c | 109 ++++++++++++++ >> ctree.h | 3 + >> fsfeatures.c | 131 ++++++++++++++--- >> fsfeatures.h | 10 +- >> mkfs/main.c | 194 >> ++++++++++++++++++++++--- >> qgroup-verify.c | 51 +++++-- >> qgroup-verify.h | 2 +- >> tests/mkfs-tests/001-basic-profiles/test.sh | 10 ++ >> tests/mkfs-tests/010-rootdir-and-quota/test.sh | 51 +++++++ >> 12 files changed, 529 insertions(+), 61 deletions(-) >> create mode 100755 tests/mkfs-tests/010-rootdir-and-quota/test.sh >> >
signature.asc
Description: OpenPGP digital signature