From: Darrick J. Wong Date: Wed, 28 Aug 2019 16:08:08 +0000 (-0400) Subject: xfs: move xfs_ino_geometry to xfs_shared.h X-Git-Tag: v5.3.0-rc1~22 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=27846843c83e5b29ed140f4600cb2a908223e80e;p=thirdparty%2Fxfsprogs-dev.git xfs: move xfs_ino_geometry to xfs_shared.h Source kernel commit: 5467b34bd1e81c8e719ae968ba6561723fdc15b8 The inode geometry structure isn't related to ondisk format; it's support for the mount structure. Move it to xfs_shared.h. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner Reviewed-by: Christoph Hellwig Signed-off-by: Eric Sandeen --- diff --git a/libxfs/xfs_dir2.c b/libxfs/xfs_dir2.c index 6b51a5253..b9b2073de 100644 --- a/libxfs/xfs_dir2.c +++ b/libxfs/xfs_dir2.c @@ -5,6 +5,7 @@ */ #include "libxfs_priv.h" #include "xfs_fs.h" +#include "xfs_shared.h" #include "xfs_format.h" #include "xfs_log_format.h" #include "xfs_trans_resv.h" diff --git a/libxfs/xfs_dir2_block.c b/libxfs/xfs_dir2_block.c index d13fafa48..3c248510c 100644 --- a/libxfs/xfs_dir2_block.c +++ b/libxfs/xfs_dir2_block.c @@ -6,6 +6,7 @@ */ #include "libxfs_priv.h" #include "xfs_fs.h" +#include "xfs_shared.h" #include "xfs_format.h" #include "xfs_log_format.h" #include "xfs_trans_resv.h" diff --git a/libxfs/xfs_dir2_data.c b/libxfs/xfs_dir2_data.c index e3d698f3b..98882445f 100644 --- a/libxfs/xfs_dir2_data.c +++ b/libxfs/xfs_dir2_data.c @@ -6,6 +6,7 @@ */ #include "libxfs_priv.h" #include "xfs_fs.h" +#include "xfs_shared.h" #include "xfs_format.h" #include "xfs_log_format.h" #include "xfs_trans_resv.h" diff --git a/libxfs/xfs_dir2_leaf.c b/libxfs/xfs_dir2_leaf.c index 4c3a05a0e..9685398f7 100644 --- a/libxfs/xfs_dir2_leaf.c +++ b/libxfs/xfs_dir2_leaf.c @@ -6,6 +6,7 @@ */ #include "libxfs_priv.h" #include "xfs_fs.h" +#include "xfs_shared.h" #include "xfs_format.h" #include "xfs_log_format.h" #include "xfs_trans_resv.h" diff --git a/libxfs/xfs_dir2_node.c b/libxfs/xfs_dir2_node.c index 2de174c06..b34277d7d 100644 --- a/libxfs/xfs_dir2_node.c +++ b/libxfs/xfs_dir2_node.c @@ -6,6 +6,7 @@ */ #include "libxfs_priv.h" #include "xfs_fs.h" +#include "xfs_shared.h" #include "xfs_format.h" #include "xfs_log_format.h" #include "xfs_trans_resv.h" diff --git a/libxfs/xfs_dir2_sf.c b/libxfs/xfs_dir2_sf.c index 24a0e61e3..b13b50b0d 100644 --- a/libxfs/xfs_dir2_sf.c +++ b/libxfs/xfs_dir2_sf.c @@ -5,6 +5,7 @@ */ #include "libxfs_priv.h" #include "xfs_fs.h" +#include "xfs_shared.h" #include "xfs_format.h" #include "xfs_log_format.h" #include "xfs_trans_resv.h" diff --git a/libxfs/xfs_format.h b/libxfs/xfs_format.h index 907407f6f..144d71636 100644 --- a/libxfs/xfs_format.h +++ b/libxfs/xfs_format.h @@ -1694,45 +1694,4 @@ struct xfs_acl { #define SGI_ACL_FILE_SIZE (sizeof(SGI_ACL_FILE)-1) #define SGI_ACL_DEFAULT_SIZE (sizeof(SGI_ACL_DEFAULT)-1) -struct xfs_ino_geometry { - /* Maximum inode count in this filesystem. */ - uint64_t maxicount; - - /* Actual inode cluster buffer size, in bytes. */ - unsigned int inode_cluster_size; - - /* - * Desired inode cluster buffer size, in bytes. This value is not - * rounded up to at least one filesystem block, which is necessary for - * the sole purpose of validating sb_spino_align. Runtime code must - * only ever use inode_cluster_size. - */ - unsigned int inode_cluster_size_raw; - - /* Inode cluster sizes, adjusted to be at least 1 fsb. */ - unsigned int inodes_per_cluster; - unsigned int blocks_per_cluster; - - /* Inode cluster alignment. */ - unsigned int cluster_align; - unsigned int cluster_align_inodes; - unsigned int inoalign_mask; /* mask sb_inoalignmt if used */ - - unsigned int inobt_mxr[2]; /* max inobt btree records */ - unsigned int inobt_mnr[2]; /* min inobt btree records */ - unsigned int inobt_maxlevels; /* max inobt btree levels. */ - - /* Size of inode allocations under normal operation. */ - unsigned int ialloc_inos; - unsigned int ialloc_blks; - - /* Minimum inode blocks for a sparse allocation. */ - unsigned int ialloc_min_blks; - - /* stripe unit inode alignment */ - unsigned int ialloc_align; - - unsigned int agino_log; /* #bits for agino in inum */ -}; - #endif /* __XFS_FORMAT_H__ */ diff --git a/libxfs/xfs_iext_tree.c b/libxfs/xfs_iext_tree.c index 5bfe8f00a..4ab8a4533 100644 --- a/libxfs/xfs_iext_tree.c +++ b/libxfs/xfs_iext_tree.c @@ -7,6 +7,7 @@ // #include // #include #include "libxfs_priv.h" +#include "xfs_shared.h" #include "xfs_format.h" #include "xfs_bit.h" #include "xfs_log_format.h" diff --git a/libxfs/xfs_inode_fork.c b/libxfs/xfs_inode_fork.c index 4cad396db..6b2ffdc0e 100644 --- a/libxfs/xfs_inode_fork.c +++ b/libxfs/xfs_inode_fork.c @@ -5,6 +5,7 @@ */ #include "libxfs_priv.h" #include "xfs_fs.h" +#include "xfs_shared.h" #include "xfs_format.h" #include "xfs_log_format.h" #include "xfs_trans_resv.h" diff --git a/libxfs/xfs_shared.h b/libxfs/xfs_shared.h index 4e909791a..b9094709b 100644 --- a/libxfs/xfs_shared.h +++ b/libxfs/xfs_shared.h @@ -136,4 +136,46 @@ void xfs_symlink_local_to_remote(struct xfs_trans *tp, struct xfs_buf *bp, struct xfs_inode *ip, struct xfs_ifork *ifp); xfs_failaddr_t xfs_symlink_shortform_verify(struct xfs_inode *ip); +/* Computed inode geometry for the filesystem. */ +struct xfs_ino_geometry { + /* Maximum inode count in this filesystem. */ + uint64_t maxicount; + + /* Actual inode cluster buffer size, in bytes. */ + unsigned int inode_cluster_size; + + /* + * Desired inode cluster buffer size, in bytes. This value is not + * rounded up to at least one filesystem block, which is necessary for + * the sole purpose of validating sb_spino_align. Runtime code must + * only ever use inode_cluster_size. + */ + unsigned int inode_cluster_size_raw; + + /* Inode cluster sizes, adjusted to be at least 1 fsb. */ + unsigned int inodes_per_cluster; + unsigned int blocks_per_cluster; + + /* Inode cluster alignment. */ + unsigned int cluster_align; + unsigned int cluster_align_inodes; + unsigned int inoalign_mask; /* mask sb_inoalignmt if used */ + + unsigned int inobt_mxr[2]; /* max inobt btree records */ + unsigned int inobt_mnr[2]; /* min inobt btree records */ + unsigned int inobt_maxlevels; /* max inobt btree levels. */ + + /* Size of inode allocations under normal operation. */ + unsigned int ialloc_inos; + unsigned int ialloc_blks; + + /* Minimum inode blocks for a sparse allocation. */ + unsigned int ialloc_min_blks; + + /* stripe unit inode alignment */ + unsigned int ialloc_align; + + unsigned int agino_log; /* #bits for agino in inum */ +}; + #endif /* __XFS_SHARED_H__ */