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