[PATCH 12/15] xfs: make dir2 ftype offset pointers explicit
Dave Chinner
david at fromorbit.com
Tue Oct 29 17:15:45 CDT 2013
On Tue, Oct 29, 2013 at 03:00:08PM -0500, Ben Myers wrote:
> 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?
Fixed in V2 of the patch that introduced the problem.
Cheers,
Dave.
--
Dave Chinner
david at fromorbit.com
More information about the xfs
mailing list