]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
mkfs: move shared config structs and into their own headers
authorLuis R. Rodriguez <mcgrof@kernel.org>
Mon, 11 Jun 2018 15:34:01 +0000 (10:34 -0500)
committerEric Sandeen <sandeen@redhat.com>
Mon, 11 Jun 2018 15:34:01 +0000 (10:34 -0500)
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@kernel.org>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
mkfs/config.h [new file with mode: 0644]
mkfs/xfs_mkfs.c

diff --git a/mkfs/config.h b/mkfs/config.h
new file mode 100644 (file)
index 0000000..e5ea968
--- /dev/null
@@ -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;
+
+       /* feature flags that are set */
+       struct sb_feat_args     sb_feat;
+
+       /* root inode characteristics */
+       struct fsxattr          fsx;
+};
+
+#endif /* _XFS_MKFS_CONFIG_H */
index 227613ef77d57287e1f4e9c245b772be8a209c3c..56e869d666be3443e9acfe0dc734fb169bfeb2a3 100644 (file)
@@ -21,6 +21,7 @@
 #include "xfs_multidisk.h"
 #include "libxcmd.h"
 #include "fsgeom.h"
+#include "config.h"
 
 
 #define TERABYTES(count, blog) ((uint64_t)(count) << (40 - (blog)))
@@ -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 )
 {