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

xfs: remove the data_dotdot_offset field in struct xfs_dir_ops

The data_dotdot_offset value is always equal to data_entry_offset plus
the fixed size of the "." entry.  Right now calculating that fixed size
requires an indirect call, but by the end of this series it will be
an inline function that can be constant folded.
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 16823104
...@@ -204,8 +204,6 @@ static const struct xfs_dir_ops xfs_dir2_ops = { ...@@ -204,8 +204,6 @@ static const struct xfs_dir_ops xfs_dir2_ops = {
.data_entry_tag_p = xfs_dir2_data_entry_tag_p, .data_entry_tag_p = xfs_dir2_data_entry_tag_p,
.data_bestfree_p = xfs_dir2_data_bestfree_p, .data_bestfree_p = xfs_dir2_data_bestfree_p,
.data_dotdot_offset = sizeof(struct xfs_dir2_data_hdr) +
XFS_DIR2_DATA_ENTSIZE(1),
.data_first_offset = sizeof(struct xfs_dir2_data_hdr) + .data_first_offset = sizeof(struct xfs_dir2_data_hdr) +
XFS_DIR2_DATA_ENTSIZE(1) + XFS_DIR2_DATA_ENTSIZE(1) +
XFS_DIR2_DATA_ENTSIZE(2), XFS_DIR2_DATA_ENTSIZE(2),
...@@ -224,8 +222,6 @@ static const struct xfs_dir_ops xfs_dir2_ftype_ops = { ...@@ -224,8 +222,6 @@ static const struct xfs_dir_ops xfs_dir2_ftype_ops = {
.data_entry_tag_p = xfs_dir3_data_entry_tag_p, .data_entry_tag_p = xfs_dir3_data_entry_tag_p,
.data_bestfree_p = xfs_dir2_data_bestfree_p, .data_bestfree_p = xfs_dir2_data_bestfree_p,
.data_dotdot_offset = sizeof(struct xfs_dir2_data_hdr) +
XFS_DIR3_DATA_ENTSIZE(1),
.data_first_offset = sizeof(struct xfs_dir2_data_hdr) + .data_first_offset = sizeof(struct xfs_dir2_data_hdr) +
XFS_DIR3_DATA_ENTSIZE(1) + XFS_DIR3_DATA_ENTSIZE(1) +
XFS_DIR3_DATA_ENTSIZE(2), XFS_DIR3_DATA_ENTSIZE(2),
...@@ -244,8 +240,6 @@ static const struct xfs_dir_ops xfs_dir3_ops = { ...@@ -244,8 +240,6 @@ static const struct xfs_dir_ops xfs_dir3_ops = {
.data_entry_tag_p = xfs_dir3_data_entry_tag_p, .data_entry_tag_p = xfs_dir3_data_entry_tag_p,
.data_bestfree_p = xfs_dir3_data_bestfree_p, .data_bestfree_p = xfs_dir3_data_bestfree_p,
.data_dotdot_offset = sizeof(struct xfs_dir3_data_hdr) +
XFS_DIR3_DATA_ENTSIZE(1),
.data_first_offset = sizeof(struct xfs_dir3_data_hdr) + .data_first_offset = sizeof(struct xfs_dir3_data_hdr) +
XFS_DIR3_DATA_ENTSIZE(1) + XFS_DIR3_DATA_ENTSIZE(1) +
XFS_DIR3_DATA_ENTSIZE(2), XFS_DIR3_DATA_ENTSIZE(2),
......
...@@ -40,7 +40,6 @@ struct xfs_dir_ops { ...@@ -40,7 +40,6 @@ struct xfs_dir_ops {
struct xfs_dir2_data_free * struct xfs_dir2_data_free *
(*data_bestfree_p)(struct xfs_dir2_data_hdr *hdr); (*data_bestfree_p)(struct xfs_dir2_data_hdr *hdr);
xfs_dir2_data_aoff_t data_dotdot_offset;
xfs_dir2_data_aoff_t data_first_offset; xfs_dir2_data_aoff_t data_first_offset;
size_t data_entry_offset; size_t data_entry_offset;
......
...@@ -77,7 +77,8 @@ xfs_dir2_sf_getdents( ...@@ -77,7 +77,8 @@ xfs_dir2_sf_getdents(
dot_offset = xfs_dir2_db_off_to_dataptr(geo, geo->datablk, dot_offset = xfs_dir2_db_off_to_dataptr(geo, geo->datablk,
dp->d_ops->data_entry_offset); dp->d_ops->data_entry_offset);
dotdot_offset = xfs_dir2_db_off_to_dataptr(geo, geo->datablk, dotdot_offset = xfs_dir2_db_off_to_dataptr(geo, geo->datablk,
dp->d_ops->data_dotdot_offset); dp->d_ops->data_entry_offset +
dp->d_ops->data_entsize(sizeof(".") - 1));
/* /*
* Put . entry unless we're starting past it. * Put . entry unless we're starting past it.
......
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