Re: [PATCH 2/2] xfs: add support for sub-pagesize writeback without buffer_heads

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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..




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux