Re: [PATCH v3 2/4] mkfs: move shared config structs and into their own headers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, May 24, 2018 at 08:19:41PM -0700, Luis R. Rodriguez wrote:
> Both struct sb_feat_args and struct mkfs_default_params will be shared
> between CLI processing and the configuration file processing added later,
> so move these to their own header.
> 
> This will help ensure we split things neatly later and also will help
> ensure the configuration file processing code from the CLI code are kept
> separate and cannot touch each other's data structures. This also makes
> it clear what is actually shared between both.
> 
> There are no introduced functional changes in this commit and no
> documentation changes, this is just code shuffling.
> 
> Signed-off-by: Luis R. Rodriguez <mcgrof@xxxxxxxxxx>
> ---
>  mkfs/config.h   | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  mkfs/xfs_mkfs.c | 55 +---------------------------------------
>  2 files changed, 79 insertions(+), 54 deletions(-)
>  create mode 100644 mkfs/config.h
> 
> diff --git a/mkfs/config.h b/mkfs/config.h
> new file mode 100644
> index 000000000000..e5ea968e2d65
> --- /dev/null
> +++ b/mkfs/config.h
> @@ -0,0 +1,78 @@
> +/*
> + * Copyright (c) 2000-2005 Silicon Graphics, Inc.
> + * Copyright (c) 2016-2017 Red Hat, Inc.
> + * All Rights Reserved.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it would be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write the Free Software Foundation,
> + * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
> + */
> +#ifndef _XFS_MKFS_CONFIG_H
> +#define _XFS_MKFS_CONFIG_H
> +
> +struct fsxattr;
> +
> +/*
> + * Shared superblock configuration options
> + *
> + * These options provide shared configuration tunables for the filesystem
> + * superblock. There are three possible sources for these options set, each
> + * source can overriding the later source:
> + *
> + * 	o built-in defaults
> + * 	o configuration file (XXX)
> + * 	o command line
> + *
> + * These values are not used directly - they are inputs into the mkfs geometry
> + * validation.
> + */
> +struct sb_feat_args {
> +	int	log_version;
> +	int	attr_version;
> +	int	dir_version;
> +	bool	inode_align;		/* XFS_SB_VERSION_ALIGNBIT */
> +	bool	nci;			/* XFS_SB_VERSION_BORGBIT */
> +	bool	lazy_sb_counters;	/* XFS_SB_VERSION2_LAZYSBCOUNTBIT */
> +	bool	parent_pointers;	/* XFS_SB_VERSION2_PARENTBIT */
> +	bool	projid32bit;		/* XFS_SB_VERSION2_PROJID32BIT */
> +	bool	crcs_enabled;		/* XFS_SB_VERSION2_CRCBIT */
> +	bool	dirftype;		/* XFS_SB_VERSION2_FTYPE */
> +	bool	finobt;			/* XFS_SB_FEAT_RO_COMPAT_FINOBT */
> +	bool	spinodes;		/* XFS_SB_FEAT_INCOMPAT_SPINODES */
> +	bool	rmapbt;			/* XFS_SB_FEAT_RO_COMPAT_RMAPBT */
> +	bool	reflink;		/* XFS_SB_FEAT_RO_COMPAT_REFLINK */
> +	bool	nodalign;
> +	bool	nortalign;
> +};
> +
> +/*
> + * Default filesystem features and configuration values
> + *
> + * This structure contains the default mkfs values that are to be used when
> + * a user does not specify the option on the command line. We do not use these
> + * values directly - they are inputs to the mkfs geometry validation and
> + * calculations.
> + */
> +struct mkfs_default_params {
> +	char	*source;	/* where the defaults came from */
> +
> +	int	sectorsize;
> +	int	blocksize;

Indentation ^^^ is uneven with the rest of the struct, but otherwise:
Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>

--D

> +
> +	/* feature flags that are set */
> +	struct sb_feat_args	sb_feat;
> +
> +	/* root inode characteristics */
> +	struct fsxattr		fsx;
> +};
> +
> +#endif /* _XFS_MKFS_CONFIG_H */
> diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c
> index 95cd6ced13f0..217bb972538d 100644
> --- a/mkfs/xfs_mkfs.c
> +++ b/mkfs/xfs_mkfs.c
> @@ -20,6 +20,7 @@
>  #include <ctype.h>
>  #include "xfs_multidisk.h"
>  #include "libxcmd.h"
> +#include "config.h"
>  
>  
>  
> @@ -706,39 +707,6 @@ cli_opt_set(
>  	       opts->subopt_params[subopt].str_seen;
>  }
>  
> -/*
> - * Shared superblock configuration options
> - *
> - * These options provide shared configuration tunables for the filesystem
> - * superblock. There are three possible sources for these options set, each
> - * source can overriding the later source:
> - *
> - * 	o built-in defaults
> - * 	o configuration file (XXX)
> - * 	o command line
> - *
> - * These values are not used directly - they are inputs into the mkfs geometry
> - * validation.
> - */
> -struct sb_feat_args {
> -	int	log_version;
> -	int	attr_version;
> -	int	dir_version;
> -	bool	inode_align;		/* XFS_SB_VERSION_ALIGNBIT */
> -	bool	nci;			/* XFS_SB_VERSION_BORGBIT */
> -	bool	lazy_sb_counters;	/* XFS_SB_VERSION2_LAZYSBCOUNTBIT */
> -	bool	parent_pointers;	/* XFS_SB_VERSION2_PARENTBIT */
> -	bool	projid32bit;		/* XFS_SB_VERSION2_PROJID32BIT */
> -	bool	crcs_enabled;		/* XFS_SB_VERSION2_CRCBIT */
> -	bool	dirftype;		/* XFS_SB_VERSION2_FTYPE */
> -	bool	finobt;			/* XFS_SB_FEAT_RO_COMPAT_FINOBT */
> -	bool	spinodes;		/* XFS_SB_FEAT_INCOMPAT_SPINODES */
> -	bool	rmapbt;			/* XFS_SB_FEAT_RO_COMPAT_RMAPBT */
> -	bool	reflink;		/* XFS_SB_FEAT_RO_COMPAT_REFLINK */
> -	bool	nodalign;
> -	bool	nortalign;
> -};
> -
>  /*
>   * Options configured on the command line.
>   *
> @@ -850,27 +818,6 @@ struct mkfs_params {
>  	struct sb_feat_args	sb_feat;
>  };
>  
> -/*
> - * Default filesystem features and configuration values
> - *
> - * This structure contains the default mkfs values that are to be used when
> - * a user does not specify the option on the command line. We do not use these
> - * values directly - they are inputs to the mkfs geometry validation and
> - * calculations.
> - */
> -struct mkfs_default_params {
> -	char	*source;	/* where the defaults came from */
> -
> -	int	sectorsize;
> -	int	blocksize;
> -
> -	/* feature flags that are set */
> -	struct sb_feat_args	sb_feat;
> -
> -	/* root inode characteristics */
> -	struct fsxattr		fsx;
> -};
> -
>  static void __attribute__((noreturn))
>  usage( void )
>  {
> -- 
> 2.16.3
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux