On Wed, Oct 17, 2018 at 01:40:02AM -0700, Christoph Hellwig wrote: > > @@ -1415,11 +1419,17 @@ xfs_reflink_remap_range( > > > > trace_xfs_reflink_remap_range(src, pos_in, len, dest, pos_out); > > > > + if (len == 0) { > > + ret = 0; > > + goto out_unlock; > > + } > > + > > As pointed out last time this check is superflous, right above we have > this check: > > if (ret < 0 || len == 0) > return ret; Oops, sorry I missed that, will fix now. > > ret = xfs_reflink_remap_blocks(src, sfsbno, dest, dfsbno, fsblen, > > - pos_out + len); > > + &remappedfsb, pos_out + len); > > + remapped_bytes = min_t(loff_t, len, XFS_FSB_TO_B(mp, remappedfsb)); > > I still think returning the bytes from the function would be saner, > but maybe that's just me. Hmmm, this call site is getting messy; I'll tack on another patch to clean that up too. --D