[PATCH 12/15] xfs: make dir2 ftype offset pointers explicit
Ben Myers
bpm at sgi.com
Wed Oct 30 13:51:18 CDT 2013
On Wed, Oct 30, 2013 at 09:15:45AM +1100, Dave Chinner wrote:
> 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.
Fine.
Reviewed-by: Ben Myers <bpm at sgi.com>
More information about the xfs
mailing list