Commit 545910bc authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Darrick J. Wong
Browse files

xfs: move the dir2 leaf header size to struct xfs_da_geometry



Move the leaf header size towards our structure for dir/attr geometry
parameters.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
parent 787b0893
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ struct xfs_da_geometry {
	unsigned int	node_ents;	/* # of entries in a danode */
	unsigned int	magicpct;	/* 37% of block size in bytes */
	xfs_dablk_t	datablk;	/* blockno of dir data v2 */
	unsigned int	leaf_hdr_size;	/* dir2 leaf header size */
	xfs_dablk_t	leafblk;	/* blockno of leaf data v2 */
	xfs_dablk_t	freeblk;	/* blockno of free data v2 */
};
+0 −3
Original line number Diff line number Diff line
@@ -570,7 +570,6 @@ static const struct xfs_dir_ops xfs_dir2_ops = {
	.data_entry_p = xfs_dir2_data_entry_p,
	.data_unused_p = xfs_dir2_data_unused_p,

	.leaf_hdr_size = sizeof(struct xfs_dir2_leaf_hdr),
	.leaf_max_ents = xfs_dir2_max_leaf_ents,

	.free_hdr_size = sizeof(struct xfs_dir2_free_hdr),
@@ -612,7 +611,6 @@ static const struct xfs_dir_ops xfs_dir2_ftype_ops = {
	.data_entry_p = xfs_dir2_data_entry_p,
	.data_unused_p = xfs_dir2_data_unused_p,

	.leaf_hdr_size = sizeof(struct xfs_dir2_leaf_hdr),
	.leaf_max_ents = xfs_dir2_max_leaf_ents,

	.free_hdr_size = sizeof(struct xfs_dir2_free_hdr),
@@ -654,7 +652,6 @@ static const struct xfs_dir_ops xfs_dir3_ops = {
	.data_entry_p = xfs_dir3_data_entry_p,
	.data_unused_p = xfs_dir3_data_unused_p,

	.leaf_hdr_size = sizeof(struct xfs_dir3_leaf_hdr),
	.leaf_max_ents = xfs_dir3_max_leaf_ents,

	.free_hdr_size = sizeof(struct xfs_dir3_free_hdr),
+5 −2
Original line number Diff line number Diff line
@@ -122,10 +122,13 @@ xfs_da_mount(
	dageo->fsblog = mp->m_sb.sb_blocklog;
	dageo->blksize = xfs_dir2_dirblock_bytes(&mp->m_sb);
	dageo->fsbcount = 1 << mp->m_sb.sb_dirblklog;
	if (xfs_sb_version_hascrc(&mp->m_sb))
	if (xfs_sb_version_hascrc(&mp->m_sb)) {
		dageo->node_hdr_size = sizeof(struct xfs_da3_node_hdr);
	else
		dageo->leaf_hdr_size = sizeof(struct xfs_dir3_leaf_hdr);
	} else {
		dageo->node_hdr_size = sizeof(struct xfs_da_node_hdr);
		dageo->leaf_hdr_size = sizeof(struct xfs_dir2_leaf_hdr);
	}

	/*
	 * Now we've set up the block conversion variables, we can calculate the
+0 −1
Original line number Diff line number Diff line
@@ -72,7 +72,6 @@ struct xfs_dir_ops {
	struct xfs_dir2_data_unused *
		(*data_unused_p)(struct xfs_dir2_data_hdr *hdr);

	int	leaf_hdr_size;
	int	(*leaf_max_ents)(struct xfs_da_geometry *geo);

	int	free_hdr_size;
+1 −1
Original line number Diff line number Diff line
@@ -1132,7 +1132,7 @@ xfs_dir3_leaf_log_header(

	xfs_trans_log_buf(args->trans, bp,
			  (uint)((char *)&leaf->hdr - (char *)leaf),
			  args->dp->d_ops->leaf_hdr_size - 1);
			  args->geo->leaf_hdr_size - 1);
}

/*
Loading