All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] mkfs: Quota support
@ 2017-10-27  7:29 Qu Wenruo
  2017-10-27  7:29 ` [PATCH 1/8] btrfs-progs: qgroup-verify: Also repair qgroup status version Qu Wenruo
                   ` (9 more replies)
  0 siblings, 10 replies; 15+ messages in thread
From: Qu Wenruo @ 2017-10-27  7:29 UTC (permalink / raw)
  To: linux-btrfs; +Cc: dsterba

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 0/5 qgroup
   c) quota limit for 0/5 qgroup

   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, 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.

Qu Wenruo (8):
  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
  btrfs-progs: mkfs: Introduce option to enable quota at mkfs time
  btrfs-progs: test/mkfs: Add test case for --enable-quota option

 Documentation/mkfs.btrfs.asciidoc           |   3 +
 cmds-check.c                                |   2 +-
 ctree.c                                     | 109 ++++++++++++++++++++++
 ctree.h                                     |   3 +
 mkfs/main.c                                 | 136 +++++++++++++++++++++++++++-
 qgroup-verify.c                             |  51 ++++++++---
 qgroup-verify.h                             |   2 +-
 tests/mkfs-tests/001-basic-profiles/test.sh |  10 ++
 8 files changed, 302 insertions(+), 14 deletions(-)

-- 
2.14.3


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2017-11-04 14:29 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-27  7:29 [PATCH 0/8] mkfs: Quota support Qu Wenruo
2017-10-27  7:29 ` [PATCH 1/8] btrfs-progs: qgroup-verify: Also repair qgroup status version Qu Wenruo
2017-10-27  7:29 ` [PATCH 2/8] btrfs-progs: qgroup-verify: Use fs_info->readonly to check if we should repair qgroups Qu Wenruo
2017-10-27  7:29 ` [PATCH 3/8] btrfs-progs: qgroup-verify: Move qgroup classification out of report_qgroups Qu Wenruo
2017-11-04 14:20   ` Lu Fengqi
2017-10-27  7:29 ` [PATCH 4/8] btrfs-progs: qgroup-verify: Allow repair_qgroups function to do silent repair Qu Wenruo
2017-10-27  7:29 ` [PATCH 5/8] btrfs-progs: ctree: Introduce function to create an empty tree Qu Wenruo
2017-11-03  9:12   ` Lu Fengqi
2017-10-27  7:29 ` [PATCH 6/8] btrfs-progs: mkfs: Introduce function to insert qgroup info and limit items Qu Wenruo
2017-10-27  7:29 ` [PATCH 7/8] btrfs-progs: mkfs: Introduce option to enable quota at mkfs time Qu Wenruo
2017-10-27  7:29 ` [PATCH 8/8] btrfs-progs: test/mkfs: Add test case for --enable-quota option Qu Wenruo
2017-10-27 17:37 ` [PATCH 0/8] mkfs: Quota support David Sterba
2017-10-27 23:57   ` Qu Wenruo
2017-11-01  7:18   ` Qu Wenruo
2017-11-04 14:28 ` Lu Fengqi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.