On Mon, Apr 29, 2024 at 06:49:11AM +0200, Christoph Hellwig wrote: > Accessing if_bytes without the ilock is racy. Remove the initial > if_bytes == 0 check in xfs_reflink_end_cow_extent and let > ext_iext_lookup_extent fail for this case after we've taken the ilock. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> I wonder if this has any practical (mal)effects on the system? Regardless, Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> --D > --- > fs/xfs/xfs_reflink.c | 6 ------ > 1 file changed, 6 deletions(-) > > diff --git a/fs/xfs/xfs_reflink.c b/fs/xfs/xfs_reflink.c > index 9ce37d366534c3..0ab2ef5b58f6c4 100644 > --- a/fs/xfs/xfs_reflink.c > +++ b/fs/xfs/xfs_reflink.c > @@ -731,12 +731,6 @@ xfs_reflink_end_cow_extent( > int nmaps; > int error; > > - /* No COW extents? That's easy! */ > - if (ifp->if_bytes == 0) { > - *offset_fsb = end_fsb; > - return 0; > - } > - > resblks = XFS_EXTENTADD_SPACE_RES(mp, XFS_DATA_FORK); > error = xfs_trans_alloc(mp, &M_RES(mp)->tr_write, resblks, 0, > XFS_TRANS_RESERVE, &tp); > -- > 2.39.2 > >