public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Qu Wenruo <wqu@suse.com>
To: linux-btrfs@vger.kernel.org
Cc: william.brown@suse.com
Subject: [PATCH 0/3] btrfs-progs: subvolume-list: add qgroup sizes output
Date: Tue, 28 Nov 2023 19:14:50 +1030	[thread overview]
Message-ID: <cover.1701160698.git.wqu@suse.com> (raw)

ZFS' management tool is way better received than btrfs-progs, one of the
user-friendly point is the default `zpool list`, which includes the size
of each subvolume.

I'm not sure how ZFS handles it, but for btrfs we need qgroups (or the
faster but slightly less accurate squota) to get the accurate numbers.

But considering a lot of distro is enabling qgroup by default for
exactly the same reason, and during the years qgroup itself is also
under a lot of optimization, I believe adding sizes output for `btrfs
subvolume list` is an overall benefit for end uesrs.

This patch would do exactly so, the output example is:

 # ./btrfs subv list -t /mnt/btrfs/
 ID	gen	top level	rfer	excl	path
 --	---	---------	----	----	----
 256	11	5		1064960	1064960	subvol1
 257	11	5		4210688	4210688	subvol2

The extra columns are added depending on if qgroup is enabled, and we
allow users to force such output, but if qgroup is not enabled and we're
forced to output such sizes, a warning would be outputted and fill all
the sizes value as 0.

Thanks William Brown for the UI suggestion.

Although there are still some pitfalls, mentioned in the last patch.

Qu Wenruo (3):
  btrfs-progs: separate root attributes into a dedicated structure from
    root_info
  btrfs-progs: use root_attr structure to pass various attributes
  btrfs-progs: subvolume-list: output qgroup sizes for subvolumes

 Documentation/btrfs-subvolume.rst |  12 +-
 cmds/subvolume-list.c             | 572 ++++++++++++++++++------------
 2 files changed, 349 insertions(+), 235 deletions(-)

--
2.42.1


             reply	other threads:[~2023-11-28  8:45 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-28  8:44 Qu Wenruo [this message]
2023-11-28  8:44 ` [PATCH 1/3] btrfs-progs: separate root attributes into a dedicated structure from root_info Qu Wenruo
2023-11-28  8:44 ` [PATCH 2/3] btrfs-progs: use root_attr structure to pass various attributes Qu Wenruo
2023-11-28  8:44 ` [PATCH 3/3] btrfs-progs: subvolume-list: output qgroup sizes for subvolumes Qu Wenruo
2023-12-06 21:30 ` [PATCH 0/3] btrfs-progs: subvolume-list: add qgroup sizes output David Sterba
2024-03-21  3:21 ` Qu Wenruo
2024-03-25 22:44   ` David Sterba

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=cover.1701160698.git.wqu@suse.com \
    --to=wqu@suse.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=william.brown@suse.com \
    /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