Re: [PATCH] NFS: Ensure that 'noac' and/or 'actimeo=0' turn off attribute caching

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

 



On Mon, 2008-05-05 at 11:02 -0400, Chuck Lever wrote:
> Hi Trond-
> 
> On May 2, 2008, at 4:25 PM, Trond Myklebust wrote:
> > Both the 'noac' and 'actimeo=0' mount options should ensure that  
> > attributes
> > are not cached, however a bug in nfs_attribute_timeout() means that
> > currently, the attributes may in fact get cached for up to one  
> > jiffy. This
> > has been seen to cause corruption in some applications.
> >
> > The reason for the bug is that the time_in_range() test returns  
> > 'true' as
> > long as the current time lies between nfsi->read_cache_jiffies and
> > nfsi->read_cache_jiffies + nfsi->attrtimeo. In other words, if jiffies
> > equals nfsi->read_cache_jiffies, then we still cache the attribute  
> > data.
> >
> > Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
> > ---
> >
> > fs/nfs/inode.c |    7 +++++++
> > 1 files changed, 7 insertions(+), 0 deletions(-)
> >
> > diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
> > index 5cb3345..38f06d3 100644
> > --- a/fs/nfs/inode.c
> > +++ b/fs/nfs/inode.c
> > @@ -707,6 +707,13 @@ int nfs_attribute_timeout(struct inode *inode)
> >
> > 	if (nfs_have_delegation(inode, FMODE_READ))
> > 		return 0;
> > +	/*
> > +	 * Special case: if the attribute timeout is set to 0, then we
> > +	 * 		 treat the cache as having expired (unless we
> > +	 * 		 have a delegation).
> > +	 */
> > +	if (nfsi->attrtimeo == 0)
> > +		return 1;
> > 	return !time_in_range(jiffies, nfsi->read_cache_jiffies, nfsi- 
> > >read_cache_jiffies + nfsi->attrtimeo);
> > }
> 
> Do nfs_access_get_cached() and nfs_update_inode() have the same issue?

nfs_access_get_cached() probably has the same issue, but I can't see how
nfs_update_inode() would. Could you explain?

-- 
Trond Myklebust
Linux NFS client maintainer

NetApp
Trond.Myklebust@xxxxxxxxxx
www.netapp.com
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[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