Commit ed1d612f authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Darrick J. Wong

xfs: move the dir2 free header size to struct xfs_da_geometry

Move the free 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 a84f3d5c
...@@ -29,6 +29,7 @@ struct xfs_da_geometry { ...@@ -29,6 +29,7 @@ struct xfs_da_geometry {
unsigned int leaf_hdr_size; /* dir2 leaf header size */ unsigned int leaf_hdr_size; /* dir2 leaf header size */
unsigned int leaf_max_ents; /* # of entries in dir2 leaf */ unsigned int leaf_max_ents; /* # of entries in dir2 leaf */
xfs_dablk_t leafblk; /* blockno of leaf data v2 */ xfs_dablk_t leafblk; /* blockno of leaf data v2 */
unsigned int free_hdr_size; /* dir2 free header size */
xfs_dablk_t freeblk; /* blockno of free data v2 */ xfs_dablk_t freeblk; /* blockno of free data v2 */
}; };
......
...@@ -486,7 +486,6 @@ static const struct xfs_dir_ops xfs_dir2_ops = { ...@@ -486,7 +486,6 @@ static const struct xfs_dir_ops xfs_dir2_ops = {
.data_entry_p = xfs_dir2_data_entry_p, .data_entry_p = xfs_dir2_data_entry_p,
.data_unused_p = xfs_dir2_data_unused_p, .data_unused_p = xfs_dir2_data_unused_p,
.free_hdr_size = sizeof(struct xfs_dir2_free_hdr),
.free_max_bests = xfs_dir2_free_max_bests, .free_max_bests = xfs_dir2_free_max_bests,
.db_to_fdb = xfs_dir2_db_to_fdb, .db_to_fdb = xfs_dir2_db_to_fdb,
.db_to_fdindex = xfs_dir2_db_to_fdindex, .db_to_fdindex = xfs_dir2_db_to_fdindex,
...@@ -522,7 +521,6 @@ static const struct xfs_dir_ops xfs_dir2_ftype_ops = { ...@@ -522,7 +521,6 @@ static const struct xfs_dir_ops xfs_dir2_ftype_ops = {
.data_entry_p = xfs_dir2_data_entry_p, .data_entry_p = xfs_dir2_data_entry_p,
.data_unused_p = xfs_dir2_data_unused_p, .data_unused_p = xfs_dir2_data_unused_p,
.free_hdr_size = sizeof(struct xfs_dir2_free_hdr),
.free_max_bests = xfs_dir2_free_max_bests, .free_max_bests = xfs_dir2_free_max_bests,
.db_to_fdb = xfs_dir2_db_to_fdb, .db_to_fdb = xfs_dir2_db_to_fdb,
.db_to_fdindex = xfs_dir2_db_to_fdindex, .db_to_fdindex = xfs_dir2_db_to_fdindex,
...@@ -558,7 +556,6 @@ static const struct xfs_dir_ops xfs_dir3_ops = { ...@@ -558,7 +556,6 @@ static const struct xfs_dir_ops xfs_dir3_ops = {
.data_entry_p = xfs_dir3_data_entry_p, .data_entry_p = xfs_dir3_data_entry_p,
.data_unused_p = xfs_dir3_data_unused_p, .data_unused_p = xfs_dir3_data_unused_p,
.free_hdr_size = sizeof(struct xfs_dir3_free_hdr),
.free_max_bests = xfs_dir3_free_max_bests, .free_max_bests = xfs_dir3_free_max_bests,
.db_to_fdb = xfs_dir3_db_to_fdb, .db_to_fdb = xfs_dir3_db_to_fdb,
.db_to_fdindex = xfs_dir3_db_to_fdindex, .db_to_fdindex = xfs_dir3_db_to_fdindex,
......
...@@ -125,9 +125,11 @@ xfs_da_mount( ...@@ -125,9 +125,11 @@ xfs_da_mount(
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); dageo->node_hdr_size = sizeof(struct xfs_da3_node_hdr);
dageo->leaf_hdr_size = sizeof(struct xfs_dir3_leaf_hdr); dageo->leaf_hdr_size = sizeof(struct xfs_dir3_leaf_hdr);
dageo->free_hdr_size = sizeof(struct xfs_dir3_free_hdr);
} else { } else {
dageo->node_hdr_size = sizeof(struct xfs_da_node_hdr); dageo->node_hdr_size = sizeof(struct xfs_da_node_hdr);
dageo->leaf_hdr_size = sizeof(struct xfs_dir2_leaf_hdr); dageo->leaf_hdr_size = sizeof(struct xfs_dir2_leaf_hdr);
dageo->free_hdr_size = sizeof(struct xfs_dir2_free_hdr);
} }
dageo->leaf_max_ents = (dageo->blksize - dageo->leaf_hdr_size) / dageo->leaf_max_ents = (dageo->blksize - dageo->leaf_hdr_size) /
sizeof(struct xfs_dir2_leaf_entry); sizeof(struct xfs_dir2_leaf_entry);
......
...@@ -72,7 +72,6 @@ struct xfs_dir_ops { ...@@ -72,7 +72,6 @@ struct xfs_dir_ops {
struct xfs_dir2_data_unused * struct xfs_dir2_data_unused *
(*data_unused_p)(struct xfs_dir2_data_hdr *hdr); (*data_unused_p)(struct xfs_dir2_data_hdr *hdr);
int free_hdr_size;
int (*free_max_bests)(struct xfs_da_geometry *geo); int (*free_max_bests)(struct xfs_da_geometry *geo);
xfs_dir2_db_t (*db_to_fdb)(struct xfs_da_geometry *geo, xfs_dir2_db_t (*db_to_fdb)(struct xfs_da_geometry *geo,
xfs_dir2_db_t db); xfs_dir2_db_t db);
......
...@@ -372,7 +372,7 @@ xfs_dir2_free_log_header( ...@@ -372,7 +372,7 @@ xfs_dir2_free_log_header(
free->hdr.magic == cpu_to_be32(XFS_DIR3_FREE_MAGIC)); free->hdr.magic == cpu_to_be32(XFS_DIR3_FREE_MAGIC));
#endif #endif
xfs_trans_log_buf(args->trans, bp, 0, xfs_trans_log_buf(args->trans, bp, 0,
args->dp->d_ops->free_hdr_size - 1); args->geo->free_hdr_size - 1);
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment