Re: [PATCH] nfs: nfs_commit_inode should redirty inode if the inode has outstanding requests

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

 



On Fri, 2018-03-02 at 16:52 +0000, Trond Myklebust wrote:
> On Fri, 2018-03-02 at 11:00 -0500, Scott Mayhew wrote:
> > It seems that nfs_commit_inode can be called where the nfs_inode
> > has
> > outstanding requests and the commit lists are empty.  That can lead
> > to
> > invalidate_complete_page2 failing due to the associated page having
> > private data which in turn leads to invalidate_inode_pages2_range
> > returning -EBUSY.
> > 
> > Instead of having nfs_commit_inode exit early when the commit lists
> > are
> > empty, only do so if nrequests is also 0.
> > 
> > 
> 
> I'm not seeing how this failure would happen. Is there a bug in
> nfs_launder_page() and/or nfs_wb_page()?
> 
> 
Ah... It looks as if do_launder_page() only checks for PageDirty(), so
it won't catch the unstable write state. Can't we fix that? It looks as
if all the other filesystem launder_page() handlers would be safe with
a check for PageDirty || PagePrivate.

-- 
Trond Myklebust
Linux NFS client maintainer, PrimaryData
trond.myklebust@xxxxxxxxxxxxxxx
��.n��������+%������w��{.n�����{��w���jg��������ݢj����G�������j:+v���w�m������w�������h�����٥




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux