From: "Darrick J. Wong" <djwong@kernel.org>
To: Andrey Albershteyn <aalbersh@redhat.com>
Cc: linux-xfs@vger.kernel.org
Subject: Re: [PATCH 1/5] xfs_quota: separate quota info acquisition into get_quota()
Date: Mon, 28 Mar 2022 16:44:31 -0700 [thread overview]
Message-ID: <20220328234431.GC27690@magnolia> (raw)
In-Reply-To: <20220328222503.146496-2-aalbersh@redhat.com>
On Tue, Mar 29, 2022 at 12:24:59AM +0200, Andrey Albershteyn wrote:
> Both report_mount() and dump_file() have identical code to get quota
> information. This could be used for further separation of the
> functions.
>
> Signed-off-by: Andrey Albershteyn <aalbersh@redhat.com>
> ---
> quota/report.c | 49 +++++++++++++++++++++++--------------------------
> 1 file changed, 23 insertions(+), 26 deletions(-)
>
> diff --git a/quota/report.c b/quota/report.c
> index 2eb5b5a9..97a89a92 100644
> --- a/quota/report.c
> +++ b/quota/report.c
> @@ -59,16 +59,15 @@ report_help(void)
> "\n"));
> }
>
> -static int
> -dump_file(
> - FILE *fp,
> +static int
> +get_quota(
> + fs_disk_quota_t *d,
At first I confused this for a quotatools patch, but then I realized
that xfsprogs /and/ quotatools both define this structure.
Anyway... please use the non-typedef version of this, in keeping with
the current style:
static int
get_dquot(
struct fs_disk_quota *d,
uint id,
...
Also I think this ought to be called get_dquot in keeping with (AFAICT)
the naming conventions: "dquot" for specific quota records vs. "quota"
to refer to the overall feature.
> uint id,
> uint *oid,
> uint type,
> char *dev,
> int flags)
> {
> - fs_disk_quota_t d;
> int cmd;
>
> if (flags & GETNEXTQUOTA_FLAG)
> @@ -77,7 +76,7 @@ dump_file(
> cmd = XFS_GETQUOTA;
>
> /* Fall back silently if XFS_GETNEXTQUOTA fails, warn on XFS_GETQUOTA */
> - if (xfsquotactl(cmd, dev, type, id, (void *)&d) < 0) {
> + if (xfsquotactl(cmd, dev, type, id, (void *)d) < 0) {
> if (errno != ENOENT && errno != ENOSYS && errno != ESRCH &&
> cmd == XFS_GETQUOTA)
> perror("XFS_GETQUOTA");
> @@ -85,12 +84,29 @@ dump_file(
> }
>
> if (oid) {
> - *oid = d.d_id;
> + *oid = d->d_id;
> /* Did kernelspace wrap? */
> if (*oid < id)
> return 0;
> }
>
> + return 1;
> +}
> +
> +static int
> +dump_file(
> + FILE *fp,
> + uint id,
> + uint *oid,
> + uint type,
> + char *dev,
> + int flags)
> +{
> + fs_disk_quota_t d;
> +
> + if (!get_quota(&d, id, oid, type, dev, flags))
Please don't insert a whole tab after 'if'.
--D
> + return 0;
> +
> if (!d.d_blk_softlimit && !d.d_blk_hardlimit &&
> !d.d_ino_softlimit && !d.d_ino_hardlimit &&
> !d.d_rtb_softlimit && !d.d_rtb_hardlimit)
> @@ -329,31 +345,12 @@ report_mount(
> {
> fs_disk_quota_t d;
> time64_t timer;
> - char *dev = mount->fs_name;
> char c[8], h[8], s[8];
> uint qflags;
> int count;
> - int cmd;
>
> - if (flags & GETNEXTQUOTA_FLAG)
> - cmd = XFS_GETNEXTQUOTA;
> - else
> - cmd = XFS_GETQUOTA;
> -
> - /* Fall back silently if XFS_GETNEXTQUOTA fails, warn on XFS_GETQUOTA*/
> - if (xfsquotactl(cmd, dev, type, id, (void *)&d) < 0) {
> - if (errno != ENOENT && errno != ENOSYS && errno != ESRCH &&
> - cmd == XFS_GETQUOTA)
> - perror("XFS_GETQUOTA");
> + if (!get_quota(&d, id, oid, type, mount->fs_name, flags))
> return 0;
> - }
> -
> - if (oid) {
> - *oid = d.d_id;
> - /* Did kernelspace wrap? */
> - if (* oid < id)
> - return 0;
> - }
>
> if (flags & TERSE_FLAG) {
> count = 0;
> --
> 2.27.0
>
next prev parent reply other threads:[~2022-03-28 23:44 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-28 22:24 [PATCH 0/5] xfsprogs: optimize -L/-U range calls for xfs_quota's dump/report Andrey Albershteyn
2022-03-28 22:24 ` [PATCH 1/5] xfs_quota: separate quota info acquisition into get_quota() Andrey Albershteyn
2022-03-28 23:44 ` Darrick J. Wong [this message]
2022-04-06 16:31 ` Christoph Hellwig
2022-03-28 22:25 ` [PATCH 2/5] xfs_quota: create fs_disk_quota_t on upper level Andrey Albershteyn
2022-04-06 16:34 ` Christoph Hellwig
2022-03-28 22:25 ` [PATCH 3/5] xfs_quota: split get_quota() and report_mount()/dump_file() Andrey Albershteyn
2022-04-06 16:36 ` Christoph Hellwig
2022-04-07 11:06 ` Andrey Albershteyn
2022-04-13 15:54 ` Christoph Hellwig
2022-03-28 22:25 ` [PATCH 4/5] xfs_quota: utilize XFS_GETNEXTQUOTA for ranged calls in report/dump Andrey Albershteyn
2022-04-06 16:38 ` Christoph Hellwig
2022-03-28 22:25 ` [PATCH 5/5] xfs_quota: apply -L/-U range limits in uid/gid/pid loops Andrey Albershteyn
2022-04-06 16:38 ` Christoph Hellwig
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=20220328234431.GC27690@magnolia \
--to=djwong@kernel.org \
--cc=aalbersh@redhat.com \
--cc=linux-xfs@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 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.