On Fri, May 25, 2018 at 01:17:15PM -0400, Brian Foster wrote: > On Wed, May 23, 2018 at 04:46:46PM +0200, Christoph Hellwig wrote: > > Switch to using the iomap_page structure for checking sub-page uptodate > > status and track sub-page I/O completion status, and remove large > > quantities of boilerplate code working around buffer heads. > > > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > > --- > > fs/xfs/xfs_aops.c | 536 +++++++-------------------------------------- > > fs/xfs/xfs_buf.h | 1 - > > fs/xfs/xfs_iomap.c | 3 - > > fs/xfs/xfs_super.c | 2 +- > > fs/xfs/xfs_trace.h | 18 +- > > 5 files changed, 79 insertions(+), 481 deletions(-) > > > > diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c > > index efa2cbb27d67..d279929e53fb 100644 > > --- a/fs/xfs/xfs_aops.c > > +++ b/fs/xfs/xfs_aops.c > ... > > @@ -768,7 +620,7 @@ xfs_aops_discard_page( > > int error; > > > > if (XFS_FORCED_SHUTDOWN(mp)) > > - goto out_invalidate; > > + goto out; > > > > xfs_alert(mp, > > "page discard on page "PTR_FMT", inode 0x%llx, offset %llu.", > > @@ -778,15 +630,15 @@ xfs_aops_discard_page( > > PAGE_SIZE / i_blocksize(inode)); > > if (error && !XFS_FORCED_SHUTDOWN(mp)) > > xfs_alert(mp, "page discard unable to remove delalloc mapping."); > > -out_invalidate: > > - xfs_vm_invalidatepage(page, 0, PAGE_SIZE); > > +out: > > + iomap_invalidatepage(page, 0, PAGE_SIZE); > > All this does is lose the tracepoint. I don't think this call needs to > change. The rest looks Ok to me, but I still need to run some tests on > the whole thing. Ok. I actually had it that way, then thought we shouldn't need the invalidatepage without bufferheads, but it turns out we still do and added it back this way. I'll go back to start and won't collect $200..