public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: "wuyifeng (C)" <wuyifeng10@huawei.com>
To: <cem@kernel.org>, "Darrick J. Wong" <djwong@kernel.org>,
	<linux-xfs@vger.kernel.org>
Cc: <louhongxiang@huawei.com>
Subject: Re: [PATCH] xfs_grow: Remove xflag and iflag to reduce redundant temporary variables.
Date: Fri, 8 Dec 2023 16:28:41 +0800	[thread overview]
Message-ID: <374531c8-e2e7-4d96-8fe9-19f7357b08dc@huawei.com> (raw)
In-Reply-To: <619020bd-800a-431a-bb1d-937ad1cdc270@huawei.com>

Both xflag and iflag are log flags. We can use the bits of lflag to
indicate all log flags, which is a small code reconstruction.

Signed-off-by: Wu YiFeng <wuyifeng10@huawei.com>
---
  growfs/xfs_growfs.c | 22 +++++++++++-----------
  1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/growfs/xfs_growfs.c b/growfs/xfs_growfs.c
index 683961f6..5fb1a9d2 100644
--- a/growfs/xfs_growfs.c
+++ b/growfs/xfs_growfs.c
@@ -8,6 +8,10 @@
  #include "libfrog/paths.h"
  #include "libfrog/fsgeom.h"

+#define LOG_GROW	(1<<0)	/* -l flag: grow log section */
+#define LOG_EXT2INT	(1<<1)	/* -i flag: convert log from external to 
internal format */
+#define LOG_INT2EXT	(1<<2)	/* -x flag: convert log from internal to 
external format */
+
  static void
  usage(void)
  {
@@ -45,7 +49,6 @@ main(int argc, char **argv)
  	long			esize;	/* new rt extent size */
  	int			ffd;	/* mount point file descriptor */
  	struct xfs_fsop_geom	geo;	/* current fs geometry */
-	int			iflag;	/* -i flag */
  	int			isint;	/* log is currently internal */
  	int			lflag;	/* -l flag */
  	long long		lsize;	/* new log size in fs blocks */
@@ -55,7 +58,6 @@ main(int argc, char **argv)
  	struct xfs_fsop_geom	ngeo;	/* new fs geometry */
  	int			rflag;	/* -r flag */
  	long long		rsize;	/* new rt size in fs blocks */
-	int			xflag;	/* -x flag */
  	char			*fname;	/* mount point name */
  	char			*datadev; /* data device name */
  	char			*logdev;  /*  log device name */
@@ -72,7 +74,7 @@ main(int argc, char **argv)

  	maxpct = esize = 0;
  	dsize = lsize = rsize = 0LL;
-	aflag = dflag = iflag = lflag = mflag = nflag = rflag = xflag = 0;
+	aflag = dflag = lflag = mflag = nflag = rflag = 0;

  	while ((c = getopt(argc, argv, "dD:e:ilL:m:np:rR:t:xV")) != EOF) {
  		switch (c) {
@@ -87,13 +89,13 @@ main(int argc, char **argv)
  			rflag = 1;
  			break;
  		case 'i':
-			lflag = iflag = 1;
+			lflag |= LOG_EXT2INT;
  			break;
  		case 'L':
  			lsize = strtoll(optarg, NULL, 10);
  			fallthrough;
  		case 'l':
-			lflag = 1;
+			lflag |= LOG_GROW;
  			break;
  		case 'm':
  			mflag = 1;
@@ -115,7 +117,7 @@ main(int argc, char **argv)
  			mtab_file = optarg;
  			break;
  		case 'x':
-			lflag = xflag = 1;
+			lflag |= LOG_INT2EXT;
  			break;
  		case 'V':
  			printf(_("%s version %s\n"), progname, VERSION);
@@ -124,9 +126,7 @@ main(int argc, char **argv)
  			usage();
  		}
  	}
-	if (argc - optind != 1)
-		usage();
-	if (iflag && xflag)
+	if (argc - optind != 1 || ((lflag & LOG_EXT2INT) && (lflag & 
LOG_INT2EXT)))
  		usage();
  	if (dflag + lflag + rflag + mflag == 0)
  		aflag = 1;
@@ -323,9 +323,9 @@ _("[EXPERIMENTAL] try to shrink unused space %lld, 
old size is %lld\n"),

  		if (!lsize)
  			lsize = dlsize / (geo.blocksize / BBSIZE);
-		if (iflag)
+		if (lflag & LOG_EXT2INT)
  			in.isint = 1;
-		else if (xflag)
+		else if (lflag & LOG_INT2EXT)
  			in.isint = 0;
  		else
  			in.isint = xi.logBBsize == 0;
-- 
2.33.0

在 2023/12/7 16:39, wuyifeng (C) 写道:
> I found that iflag and xflag can be combined with lflag to reduce the 
> number of redundant local variables, which is a refactoring to improve 
> code readability.Signed-off-by: Wu YiFeng <wuyifeng10@huawei.com>
> 
> Please help me review, thanks.
> 
> ---
>   growfs/xfs_growfs.c | 22 +++++++++++-----------
>   1 file changed, 11 insertions(+), 11 deletions(-)
> 
> diff --git a/growfs/xfs_growfs.c b/growfs/xfs_growfs.c
> index 683961f6..5fb1a9d2 100644
> --- a/growfs/xfs_growfs.c
> +++ b/growfs/xfs_growfs.c
> @@ -8,6 +8,10 @@
>   #include "libfrog/paths.h"
>   #include "libfrog/fsgeom.h"
> 
> +#define LOG_GROW    (1<<0)    /* -l flag: grow log section */
> +#define LOG_EXT2INT    (1<<1)    /* -i flag: convert log from external 
> to internal format */
> +#define LOG_INT2EXT    (1<<2)    /* -x flag: convert log from internal 
> to external format */
> +
>   static void
>   usage(void)
>   {
> @@ -45,7 +49,6 @@ main(int argc, char **argv)
>       long            esize;    /* new rt extent size */
>       int            ffd;    /* mount point file descriptor */
>       struct xfs_fsop_geom    geo;    /* current fs geometry */
> -    int            iflag;    /* -i flag */
>       int            isint;    /* log is currently internal */
>       int            lflag;    /* -l flag */
>       long long        lsize;    /* new log size in fs blocks */
> @@ -55,7 +58,6 @@ main(int argc, char **argv)
>       struct xfs_fsop_geom    ngeo;    /* new fs geometry */
>       int            rflag;    /* -r flag */
>       long long        rsize;    /* new rt size in fs blocks */
> -    int            xflag;    /* -x flag */
>       char            *fname;    /* mount point name */
>       char            *datadev; /* data device name */
>       char            *logdev;  /*  log device name */
> @@ -72,7 +74,7 @@ main(int argc, char **argv)
> 
>       maxpct = esize = 0;
>       dsize = lsize = rsize = 0LL;
> -    aflag = dflag = iflag = lflag = mflag = nflag = rflag = xflag = 0;
> +    aflag = dflag = lflag = mflag = nflag = rflag = 0;
> 
>       while ((c = getopt(argc, argv, "dD:e:ilL:m:np:rR:t:xV")) != EOF) {
>           switch (c) {
> @@ -87,13 +89,13 @@ main(int argc, char **argv)
>               rflag = 1;
>               break;
>           case 'i':
> -            lflag = iflag = 1;
> +            lflag |= LOG_EXT2INT;
>               break;
>           case 'L':
>               lsize = strtoll(optarg, NULL, 10);
>               fallthrough;
>           case 'l':
> -            lflag = 1;
> +            lflag |= LOG_GROW;
>               break;
>           case 'm':
>               mflag = 1;
> @@ -115,7 +117,7 @@ main(int argc, char **argv)
>               mtab_file = optarg;
>               break;
>           case 'x':
> -            lflag = xflag = 1;
> +            lflag |= LOG_INT2EXT;
>               break;
>           case 'V':
>               printf(_("%s version %s\n"), progname, VERSION);
> @@ -124,9 +126,7 @@ main(int argc, char **argv)
>               usage();
>           }
>       }
> -    if (argc - optind != 1)
> -        usage();
> -    if (iflag && xflag)
> +    if (argc - optind != 1 || ((lflag & LOG_EXT2INT) && (lflag & 
> LOG_INT2EXT)))
>           usage();
>       if (dflag + lflag + rflag + mflag == 0)
>           aflag = 1;
> @@ -323,9 +323,9 @@ _("[EXPERIMENTAL] try to shrink unused space %lld, 
> old size is %lld\n"),
> 
>           if (!lsize)
>               lsize = dlsize / (geo.blocksize / BBSIZE);
> -        if (iflag)
> +        if (lflag & LOG_EXT2INT)
>               in.isint = 1;
> -        else if (xflag)
> +        else if (lflag & LOG_INT2EXT)
>               in.isint = 0;
>           else
>               in.isint = xi.logBBsize == 0;

  reply	other threads:[~2023-12-08  8:28 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <0e5P5B3pK_KjP_PgdGLjztYkfjNvEPuXovv9Fz2xm1gNnC0r5NfQf7wOK3OQNZ0GN0yqrL2qgeQpFuZfFv61og==@protonmail.internalid>
2023-12-07  8:39 ` [PATCH] xfs_grow: Remove xflag and iflag to reduce redundant temporary variables wuyifeng (C)
2023-12-08  8:28   ` wuyifeng (C) [this message]
2023-12-11 11:10   ` Carlos Maiolino
2023-12-14  2:41 wuyifeng (C)
2023-12-14  5:00 ` Christoph Hellwig
2023-12-14 17:07   ` Darrick J. Wong

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=374531c8-e2e7-4d96-8fe9-19f7357b08dc@huawei.com \
    --to=wuyifeng10@huawei.com \
    --cc=cem@kernel.org \
    --cc=djwong@kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=louhongxiang@huawei.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