xfs
[Top] [All Lists]

Re: [PATCH 12/15] xfs: make dir2 ftype offset pointers explicit

To: Ben Myers <bpm@xxxxxxx>
Subject: Re: [PATCH 12/15] xfs: make dir2 ftype offset pointers explicit
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Wed, 30 Oct 2013 09:15:45 +1100
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20131029200008.GF1935@xxxxxxx>
References: <1383045118-31107-1-git-send-email-david@xxxxxxxxxxxxx> <1383045118-31107-13-git-send-email-david@xxxxxxxxxxxxx> <20131029200008.GF1935@xxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
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@xxxxxxxxxx>
> > 
> > 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@xxxxxxxxxx>
> > ---
> >  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@xxxxxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>