From: Qu Wenruo <wqu@suse.com>
To: linux-btrfs@vger.kernel.org
Subject: [PATCH 09/11] btrfs-progs: mkfs: Introduce mkfs time quota support
Date: Tue, 7 Aug 2018 16:19:36 +0800 [thread overview]
Message-ID: <20180807081938.21348-10-wqu@suse.com> (raw)
In-Reply-To: <20180807081938.21348-1-wqu@suse.com>
The result fs will has quota enabled, with consistent qgroup accounting.
This is quite handy to test quota with fstests, which doesn't support to
call ioctl for btrfs at mount time.
Signed-off-by: Qu Wenruo <wqu@suse.com>
---
Documentation/mkfs.btrfs.asciidoc | 5 +++++
mkfs/main.c | 16 +++++++++++++++-
2 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/Documentation/mkfs.btrfs.asciidoc b/Documentation/mkfs.btrfs.asciidoc
index 2a1c3592bcb4..821aad337ab5 100644
--- a/Documentation/mkfs.btrfs.asciidoc
+++ b/Documentation/mkfs.btrfs.asciidoc
@@ -81,6 +81,11 @@ updating the metadata blocks.
+
NOTE: versions up to 3.11 set the nodesize to 4k.
+*-Q|--quota*::
+Enable btrfs quota support. Result filesystem will have quota enabled and all
+qgroup accounting correct.
+See also `btrfs-quota`(8).
+
*-s|--sectorsize <size>*::
Specify the sectorsize, the minimum data block allocation unit.
+
diff --git a/mkfs/main.c b/mkfs/main.c
index 07e5f6112aad..77eec08ef5f1 100644
--- a/mkfs/main.c
+++ b/mkfs/main.c
@@ -860,6 +860,7 @@ int main(int argc, char **argv)
char *source_dir = NULL;
bool source_dir_set = false;
bool shrink_rootdir = false;
+ bool enable_quota = false;
u64 source_dir_size = 0;
u64 min_dev_size;
u64 shrink_size;
@@ -889,13 +890,14 @@ int main(int argc, char **argv)
{ "nodiscard", no_argument, NULL, 'K' },
{ "features", required_argument, NULL, 'O' },
{ "uuid", required_argument, NULL, 'U' },
+ { "quota", required_argument, NULL, 'Q' },
{ "quiet", 0, NULL, 'q' },
{ "shrink", no_argument, NULL, GETOPT_VAL_SHRINK },
{ "help", no_argument, NULL, GETOPT_VAL_HELP },
{ NULL, 0, NULL, 0}
};
- c = getopt_long(argc, argv, "A:b:fl:n:s:m:d:L:O:r:U:VMKq",
+ c = getopt_long(argc, argv, "A:b:fl:n:s:m:d:L:O:r:U:VMKqQ",
long_options, NULL);
if (c < 0)
break;
@@ -970,6 +972,9 @@ int main(int argc, char **argv)
case 'q':
verbose = 0;
break;
+ case 'Q':
+ enable_quota = true;
+ break;
case GETOPT_VAL_SHRINK:
shrink_rootdir = true;
break;
@@ -1363,6 +1368,15 @@ raid_groups:
}
}
+ if (enable_quota) {
+ ret = setup_quota_root(fs_info);
+ if (ret < 0) {
+ error("failed to initialize quota: %d (%s)", ret,
+ strerror(-ret));
+ goto out;
+ }
+ }
+
if (verbose) {
char features_buf[64];
--
2.18.0
next prev parent reply other threads:[~2018-08-07 10:33 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-07 8:19 [PATCH v3 00/11] btrfs-progs: mkfs: Quota support through -Q|--quota Qu Wenruo
2018-08-07 8:19 ` [PATCH 01/11] btrfs-progs: qgroup-verify: Avoid NULL pointer dereference for later silent qgroup repair Qu Wenruo
2018-08-07 8:19 ` [PATCH 02/11] btrfs-progs: qgroup-verify: Also repair qgroup status version Qu Wenruo
2018-08-07 8:19 ` [PATCH 03/11] btrfs-progs: qgroup-verify: Use fs_info->readonly to check if we should repair qgroups Qu Wenruo
2018-08-07 8:19 ` [PATCH 04/11] btrfs-progs: qgroup-verify: Move qgroup classification out of report_qgroups Qu Wenruo
2018-08-07 8:19 ` [PATCH 05/11] btrfs-progs: qgroup-verify: Allow repair_qgroups function to do silent repair Qu Wenruo
2018-08-07 8:19 ` [PATCH 06/11] btrfs-progs: ctree: Introduce function to create an empty tree Qu Wenruo
2018-08-07 8:19 ` [PATCH 07/11] btrfs-progs: mkfs: Introduce function to insert qgroup info and limit items Qu Wenruo
2018-08-07 8:19 ` [PATCH 08/11] btrfs-progs: mkfs: Introduce function to setup quota root and rescan Qu Wenruo
2018-08-07 8:19 ` Qu Wenruo [this message]
2018-08-07 8:19 ` [PATCH 10/11] btrfs-progs: test/mkfs: Add test case for -Q|--quota option Qu Wenruo
2018-08-07 8:19 ` [PATCH 11/11] btrfs-progs: test/mkfs: Add test case for --rootdir and --quota Qu Wenruo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180807081938.21348-10-wqu@suse.com \
--to=wqu@suse.com \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).