On Thu, Aug 29, 2019 at 12:29:57AM -0700, Christoph Hellwig wrote: > On Mon, Aug 26, 2019 at 02:49:46PM -0700, Darrick J. Wong wrote: > > From: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > > > In xfs_rmap_irec_offset_unpack, we should always clear the contents of > > rm_flags before we begin unpacking the encoded (ondisk) offset into the > > incore rm_offset and incore rm_flags fields. Remove the open-coded > > field zeroing as this encourages api misuse. > > This one doesn't fit the series' theme, does it? :) Nope, there's always one cling-on patch. :/ > > +++ b/fs/xfs/libxfs/xfs_rmap.c > > @@ -168,7 +168,6 @@ xfs_rmap_btrec_to_irec( > > union xfs_btree_rec *rec, > > struct xfs_rmap_irec *irec) > > { > > - irec->rm_flags = 0; > > irec->rm_startblock = be32_to_cpu(rec->rmap.rm_startblock); > > irec->rm_blockcount = be32_to_cpu(rec->rmap.rm_blockcount); > > irec->rm_owner = be64_to_cpu(rec->rmap.rm_owner); > > diff --git a/fs/xfs/libxfs/xfs_rmap.h b/fs/xfs/libxfs/xfs_rmap.h > > index 0c2c3cb73429..abe633403fd1 100644 > > --- a/fs/xfs/libxfs/xfs_rmap.h > > +++ b/fs/xfs/libxfs/xfs_rmap.h > > @@ -68,6 +68,7 @@ xfs_rmap_irec_offset_unpack( > > if (offset & ~(XFS_RMAP_OFF_MASK | XFS_RMAP_OFF_FLAGS)) > > return -EFSCORRUPTED; > > irec->rm_offset = XFS_RMAP_OFF(offset); > > + irec->rm_flags = 0; > > The change looks sensible-ish. But why do we even have a separate > xfs_rmap_irec_offset_unpack with a single caller nd out of the > way in a header? Wouldn't it make sense to just merge the two > functions? xfs_repair uses libxfs_rmap_irec_offset_unpack, which is why it's a separate function. --D