linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: Christoph Hellwig <hch@lst.de>
Cc: Andrey Albershteyn <aalbersh@kernel.org>, linux-xfs@vger.kernel.org
Subject: Re: [PATCH 3/4] mkfs: remove duplicate struct libxfs_init arguments
Date: Wed, 29 Oct 2025 08:39:50 -0700	[thread overview]
Message-ID: <20251029153950.GZ3356773@frogsfrogsfrogs> (raw)
In-Reply-To: <20251029090737.1164049-4-hch@lst.de>

On Wed, Oct 29, 2025 at 10:07:31AM +0100, Christoph Hellwig wrote:
> The libxfs_init structure instance is pointed to by cli_params, so use
> that were it already exists instead of passing an additional argument.
> 
> Signed-off-by: Christoph Hellwig <hch@lst.de>

Yay fewer args,
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>

--D

> ---
>  mkfs/xfs_mkfs.c | 49 ++++++++++++++++++++++---------------------------
>  1 file changed, 22 insertions(+), 27 deletions(-)
> 
> diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c
> index 0ba7798eccf6..09a69af31be5 100644
> --- a/mkfs/xfs_mkfs.c
> +++ b/mkfs/xfs_mkfs.c
> @@ -4005,8 +4005,7 @@ ddev_is_solidstate(
>  static void
>  calc_concurrency_ag_geometry(
>  	struct mkfs_params	*cfg,
> -	struct cli_params	*cli,
> -	struct libxfs_init	*xi)
> +	struct cli_params	*cli)
>  {
>  	uint64_t		try_agsize;
>  	uint64_t		def_agsize;
> @@ -4074,11 +4073,10 @@ out:
>  static void
>  calculate_initial_ag_geometry(
>  	struct mkfs_params	*cfg,
> -	struct cli_params	*cli,
> -	struct libxfs_init	*xi)
> +	struct cli_params	*cli)
>  {
>  	if (cli->data_concurrency > 0) {
> -		calc_concurrency_ag_geometry(cfg, cli, xi);
> +		calc_concurrency_ag_geometry(cfg, cli);
>  	} else if (cli->agsize) {	/* User-specified AG size */
>  		cfg->agsize = getnum(cli->agsize, &dopts, D_AGSIZE);
>  
> @@ -4099,8 +4097,9 @@ _("agsize (%s) not a multiple of fs blk size (%d)\n"),
>  		cfg->agcount = cli->agcount;
>  		cfg->agsize = cfg->dblocks / cfg->agcount +
>  				(cfg->dblocks % cfg->agcount != 0);
> -	} else if (cli->data_concurrency == -1 && ddev_is_solidstate(xi)) {
> -		calc_concurrency_ag_geometry(cfg, cli, xi);
> +	} else if (cli->data_concurrency == -1 &&
> +		   ddev_is_solidstate(cli->xi)) {
> +		calc_concurrency_ag_geometry(cfg, cli);
>  	} else {
>  		calc_default_ag_geometry(cfg->blocklog, cfg->dblocks,
>  					 cfg->dsunit, &cfg->agsize,
> @@ -4360,8 +4359,7 @@ rtdev_is_solidstate(
>  static void
>  calc_concurrency_rtgroup_geometry(
>  	struct mkfs_params	*cfg,
> -	struct cli_params	*cli,
> -	struct libxfs_init	*xi)
> +	struct cli_params	*cli)
>  {
>  	uint64_t		try_rgsize;
>  	uint64_t		def_rgsize;
> @@ -4468,8 +4466,7 @@ _("realtime group count (%llu) must be less than the maximum (%u)\n"),
>  static void
>  calculate_rtgroup_geometry(
>  	struct mkfs_params	*cfg,
> -	struct cli_params	*cli,
> -	struct libxfs_init	*xi)
> +	struct cli_params	*cli)
>  {
>  	if (!cli->sb_feat.metadir) {
>  		cfg->rgcount = 0;
> @@ -4510,8 +4507,9 @@ _("rgsize (%s) not a multiple of fs blk size (%d)\n"),
>  		cfg->rgsize = cfg->rtblocks;
>  		cfg->rgcount = 0;
>  	} else if (cli->rtvol_concurrency > 0 ||
> -		   (cli->rtvol_concurrency == -1 && rtdev_is_solidstate(xi))) {
> -		calc_concurrency_rtgroup_geometry(cfg, cli, xi);
> +		   (cli->rtvol_concurrency == -1 &&
> +		    rtdev_is_solidstate(cli->xi))) {
> +		calc_concurrency_rtgroup_geometry(cfg, cli);
>  	} else if (is_power_of_2(cfg->rtextblocks)) {
>  		cfg->rgsize = calc_rgsize_extsize_power(cfg);
>  		cfg->rgcount = cfg->rtblocks / cfg->rgsize +
> @@ -4538,7 +4536,6 @@ static void
>  adjust_nr_zones(
>  	struct mkfs_params	*cfg,
>  	struct cli_params	*cli,
> -	struct libxfs_init	*xi,
>  	struct zone_topology	*zt)
>  {
>  	uint64_t		new_rtblocks, slack;
> @@ -4547,7 +4544,8 @@ adjust_nr_zones(
>  	if (zt->rt.nr_zones)
>  		max_zones = zt->rt.nr_zones;
>  	else
> -		max_zones = DTOBT(xi->rt.size, cfg->blocklog) / cfg->rgsize;
> +		max_zones = DTOBT(cli->xi->rt.size, cfg->blocklog) /
> +				cfg->rgsize;
>  
>  	if (!cli->rgcount)
>  		cfg->rgcount += XFS_RESERVED_ZONES;
> @@ -4576,7 +4574,6 @@ static void
>  calculate_zone_geometry(
>  	struct mkfs_params	*cfg,
>  	struct cli_params	*cli,
> -	struct libxfs_init	*xi,
>  	struct zone_topology	*zt)
>  {
>  	if (cfg->rtblocks == 0) {
> @@ -4645,7 +4642,7 @@ _("rgsize (%s) not a multiple of fs blk size (%d)\n"),
>  	}
>  
>  	if (cli->rtsize || cli->rgcount)
> -		adjust_nr_zones(cfg, cli, xi, zt);
> +		adjust_nr_zones(cfg, cli, zt);
>  
>  	if (cfg->rgcount < XFS_MIN_ZONES)  {
>  		fprintf(stderr,
> @@ -4984,7 +4981,6 @@ static uint64_t
>  calc_concurrency_logblocks(
>  	struct mkfs_params	*cfg,
>  	struct cli_params	*cli,
> -	struct libxfs_init	*xi,
>  	unsigned int		max_tx_bytes)
>  {
>  	uint64_t		log_bytes;
> @@ -4992,7 +4988,7 @@ calc_concurrency_logblocks(
>  	unsigned int		new_logblocks;
>  
>  	if (cli->log_concurrency < 0) {
> -		if (!ddev_is_solidstate(xi))
> +		if (!ddev_is_solidstate(cli->xi))
>  			goto out;
>  
>  		cli->log_concurrency = nr_cpus();
> @@ -5160,7 +5156,6 @@ static void
>  calculate_log_size(
>  	struct mkfs_params	*cfg,
>  	struct cli_params	*cli,
> -	struct libxfs_init	*xi,
>  	struct xfs_mount	*mp)
>  {
>  	struct xfs_sb		*sbp = &mp->m_sb;
> @@ -5225,8 +5220,8 @@ _("external log device size %lld blocks too small, must be at least %lld blocks\
>  		if (cfg->lsunit) {
>  			uint64_t	max_logblocks;
>  
> -			max_logblocks = min(DTOBT(xi->log.size, cfg->blocklog),
> -					    XFS_MAX_LOG_BLOCKS);
> +			max_logblocks = min(XFS_MAX_LOG_BLOCKS,
> +				DTOBT(cli->xi->log.size, cfg->blocklog));
>  			align_log_size(cfg, cfg->lsunit, max_logblocks);
>  		}
>  
> @@ -5261,7 +5256,7 @@ _("max log size %d smaller than min log size %d, filesystem is too small\n"),
>  
>  		if (cli->log_concurrency != 0)
>  			cfg->logblocks = calc_concurrency_logblocks(cfg, cli,
> -							xi, max_tx_bytes);
> +							max_tx_bytes);
>  
>  		/* But don't go below a reasonable size */
>  		cfg->logblocks = max(cfg->logblocks,
> @@ -6135,12 +6130,12 @@ main(
>  	 * dependent on device sizes. Once calculated, make sure everything
>  	 * aligns to device geometry correctly.
>  	 */
> -	calculate_initial_ag_geometry(&cfg, &cli, &xi);
> +	calculate_initial_ag_geometry(&cfg, &cli);
>  	align_ag_geometry(&cfg, &ft);
>  	if (cfg.sb_feat.zoned)
> -		calculate_zone_geometry(&cfg, &cli, &xi, &zt);
> +		calculate_zone_geometry(&cfg, &cli, &zt);
>  	else
> -		calculate_rtgroup_geometry(&cfg, &cli, &xi);
> +		calculate_rtgroup_geometry(&cfg, &cli);
>  
>  	calculate_imaxpct(&cfg, &cli);
>  
> @@ -6164,7 +6159,7 @@ main(
>  	 * With the mount set up, we can finally calculate the log size
>  	 * constraints and do default size calculations and final validation
>  	 */
> -	calculate_log_size(&cfg, &cli, &xi, mp);
> +	calculate_log_size(&cfg, &cli, mp);
>  
>  	finish_superblock_setup(&cfg, mp, sbp);
>  
> -- 
> 2.47.3
> 
> 

  reply	other threads:[~2025-10-29 15:39 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-29  9:07 improve the discard / reset zones code in mkfs Christoph Hellwig
2025-10-29  9:07 ` [PATCH 1/4] mkfs: move clearing LIBXFS_DIRECT into check_device_type Christoph Hellwig
2025-10-29 15:38   ` Darrick J. Wong
2025-10-29  9:07 ` [PATCH 2/4] libxfs: cleanup get_topology Christoph Hellwig
2025-10-29 15:39   ` Darrick J. Wong
2025-10-29  9:07 ` [PATCH 3/4] mkfs: remove duplicate struct libxfs_init arguments Christoph Hellwig
2025-10-29 15:39   ` Darrick J. Wong [this message]
2025-10-29  9:07 ` [PATCH 4/4] mkfs: split zone reset from discard Christoph Hellwig
2025-10-29 15:40   ` 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=20251029153950.GZ3356773@frogsfrogsfrogs \
    --to=djwong@kernel.org \
    --cc=aalbersh@kernel.org \
    --cc=hch@lst.de \
    --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 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).