[PATCH 12/15] xfs: make dir2 ftype offset pointers explicit
Ben Myers
bpm at sgi.com
Tue Oct 29 15:00:08 CDT 2013
On Tue, Oct 29, 2013 at 10:11:55PM +1100, Dave Chinner wrote:
> From: Dave Chinner <dchinner at redhat.com>
>
> Rather than hiding the ftype field size accounting inside the dirent
> padding for the ".." and first entry offset functions for v2
> directory formats, add explicit functions that calculate it
> correctly.
>
> Signed-off-by: Dave Chinner <dchinner at redhat.com>
> ---
> fs/xfs/xfs_da_format.c | 23 +++++++++++++++++++++--
> 1 file changed, 21 insertions(+), 2 deletions(-)
>
> diff --git a/fs/xfs/xfs_da_format.c b/fs/xfs/xfs_da_format.c
> index 5991b26..5a5767c 100644
> --- a/fs/xfs/xfs_da_format.c
> +++ b/fs/xfs/xfs_da_format.c
> @@ -334,6 +334,25 @@ xfs_dir2_data_first_entry_p(
> }
>
> static struct xfs_dir2_data_entry *
> +xfs_dir2_ftype_data_dotdot_entry_p(
> + struct xfs_dir2_data_hdr *hdr)
> +{
> + return (struct xfs_dir2_data_entry *)
> + ((char *)hdr + sizeof(struct xfs_dir2_data_hdr) +
> + XFS_DIR3_DATA_ENTSIZE(1));
> +}
> +
> +static struct xfs_dir2_data_entry *
> +xfs_dir2_ftype_data_first_entry_p(
> + struct xfs_dir2_data_hdr *hdr)
> +{
> + return (struct xfs_dir2_data_entry *)
> + ((char *)hdr + sizeof(struct xfs_dir2_data_hdr) +
> + XFS_DIR3_DATA_ENTSIZE(1) +
> + XFS_DIR3_DATA_ENTSIZE(2));
> +}
363 static struct xfs_dir2_data_entry *
364 xfs_dir3_data_dotdot_entry_p(
365 struct xfs_dir2_data_hdr *hdr)
366 {
367 return (struct xfs_dir2_data_entry *)
368 ((char *)hdr + sizeof(struct xfs_dir3_data_hdr) +
369 XFS_DIR2_DATA_ENTSIZE(1));
370 }
371
372 static struct xfs_dir2_data_entry *
373 xfs_dir3_data_first_entry_p(
374 struct xfs_dir2_data_hdr *hdr)
375 {
376 return (struct xfs_dir2_data_entry *)
377 ((char *)hdr + sizeof(struct xfs_dir3_data_hdr) +
378 XFS_DIR2_DATA_ENTSIZE(1) +
379 XFS_DIR2_DATA_ENTSIZE(2));
380 }
3
We want dir3 entry size there, I think?
> +
> +static struct xfs_dir2_data_entry *
> xfs_dir3_data_dot_entry_p(
> struct xfs_dir2_data_hdr *hdr)
> {
> @@ -762,8 +781,8 @@ const struct xfs_dir_ops xfs_dir2_ftype_ops = {
> .data_entry_offset = sizeof(struct xfs_dir2_data_hdr),
>
> .data_dot_entry_p = xfs_dir2_data_dot_entry_p,
> - .data_dotdot_entry_p = xfs_dir2_data_dotdot_entry_p,
> - .data_first_entry_p = xfs_dir2_data_first_entry_p,
> + .data_dotdot_entry_p = xfs_dir2_ftype_data_dotdot_entry_p,
> + .data_first_entry_p = xfs_dir2_ftype_data_first_entry_p,
> .data_entry_p = xfs_dir2_data_entry_p,
> .data_unused_p = xfs_dir2_data_unused_p,
>
> --
> 1.8.4.rc3
>
> _______________________________________________
> xfs mailing list
> xfs at oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
More information about the xfs
mailing list