Home
last modified time | relevance | path

Searched hist:"0 e574af1" (Results 1 – 8 of 8) sorted by relevance

/openbmc/linux/fs/nfs/
H A Dproc.c0e574af1 Thu Oct 27 21:12:38 CDT 2005 Trond Myklebust <Trond.Myklebust@netapp.com> NFS: Cleanup initialisation of struct nfs_fattr

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
0e574af1 Thu Oct 27 21:12:38 CDT 2005 Trond Myklebust <Trond.Myklebust@netapp.com> NFS: Cleanup initialisation of struct nfs_fattr

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
H A Dnfs3proc.c0e574af1 Thu Oct 27 21:12:38 CDT 2005 Trond Myklebust <Trond.Myklebust@netapp.com> NFS: Cleanup initialisation of struct nfs_fattr

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
0e574af1 Thu Oct 27 21:12:38 CDT 2005 Trond Myklebust <Trond.Myklebust@netapp.com> NFS: Cleanup initialisation of struct nfs_fattr

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
H A Dread.c0e574af1 Thu Oct 27 21:12:38 CDT 2005 Trond Myklebust <Trond.Myklebust@netapp.com> NFS: Cleanup initialisation of struct nfs_fattr

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
0e574af1 Thu Oct 27 21:12:38 CDT 2005 Trond Myklebust <Trond.Myklebust@netapp.com> NFS: Cleanup initialisation of struct nfs_fattr

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
H A Ddirect.c65d26953 Mon Feb 15 11:19:53 CST 2010 Chuck Lever <chuck.lever@oracle.com> NFS: Too many GETATTR and ACCESS calls after direct I/O

The cached read and write paths initialize fattr->time_start in their
setup procedures. The value of fattr->time_start is propagated to
read_cache_jiffies by nfs_update_inode(). Subsequent calls to
nfs_attribute_timeout() will then use a good time stamp when
computing the attribute cache timeout, and squelch unneeded GETATTR
calls.

Since the direct I/O paths erroneously leave the inode's
fattr->time_start field set to zero, read_cache_jiffies for that inode
is set to zero after any direct read or write operation. This
triggers an otw GETATTR or ACCESS call to update the file's attribute
and access caches properly, even when the NFS READ or WRITE replies
have usable post-op attributes.

Make sure the direct read and write setup code performs the same fattr
initialization as the cached I/O paths to prevent unnecessary GETATTR
calls.

This was likely introduced by commit 0e574af1 in 2.6.15, which appears
to add new nfs_fattr_init() call sites in the cached read and write
paths, but not in the equivalent places in fs/nfs/direct.c. A
subsequent commit in the same series, 33801147, introduces the
fattr->time_start field.

Interestingly, the direct write reschedule path already has a call to
nfs_fattr_init() in the right place.

Reported-by: Quentin Barnes <qbarnes@yahoo-inc.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Cc: stable@kernel.org
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
65d26953 Mon Feb 15 11:19:53 CST 2010 Chuck Lever <chuck.lever@oracle.com> NFS: Too many GETATTR and ACCESS calls after direct I/O

The cached read and write paths initialize fattr->time_start in their
setup procedures. The value of fattr->time_start is propagated to
read_cache_jiffies by nfs_update_inode(). Subsequent calls to
nfs_attribute_timeout() will then use a good time stamp when
computing the attribute cache timeout, and squelch unneeded GETATTR
calls.

Since the direct I/O paths erroneously leave the inode's
fattr->time_start field set to zero, read_cache_jiffies for that inode
is set to zero after any direct read or write operation. This
triggers an otw GETATTR or ACCESS call to update the file's attribute
and access caches properly, even when the NFS READ or WRITE replies
have usable post-op attributes.

Make sure the direct read and write setup code performs the same fattr
initialization as the cached I/O paths to prevent unnecessary GETATTR
calls.

This was likely introduced by commit 0e574af1 in 2.6.15, which appears
to add new nfs_fattr_init() call sites in the cached read and write
paths, but not in the equivalent places in fs/nfs/direct.c. A
subsequent commit in the same series, 33801147, introduces the
fattr->time_start field.

Interestingly, the direct write reschedule path already has a call to
nfs_fattr_init() in the right place.

Reported-by: Quentin Barnes <qbarnes@yahoo-inc.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Cc: stable@kernel.org
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
H A Dwrite.c0e574af1 Thu Oct 27 21:12:38 CDT 2005 Trond Myklebust <Trond.Myklebust@netapp.com> NFS: Cleanup initialisation of struct nfs_fattr

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
0e574af1 Thu Oct 27 21:12:38 CDT 2005 Trond Myklebust <Trond.Myklebust@netapp.com> NFS: Cleanup initialisation of struct nfs_fattr

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
H A Ddir.c0e574af1 Thu Oct 27 21:12:38 CDT 2005 Trond Myklebust <Trond.Myklebust@netapp.com> NFS: Cleanup initialisation of struct nfs_fattr

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
0e574af1 Thu Oct 27 21:12:38 CDT 2005 Trond Myklebust <Trond.Myklebust@netapp.com> NFS: Cleanup initialisation of struct nfs_fattr

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
H A Dnfs4proc.c0e574af1 Thu Oct 27 21:12:38 CDT 2005 Trond Myklebust <Trond.Myklebust@netapp.com> NFS: Cleanup initialisation of struct nfs_fattr

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
0e574af1 Thu Oct 27 21:12:38 CDT 2005 Trond Myklebust <Trond.Myklebust@netapp.com> NFS: Cleanup initialisation of struct nfs_fattr

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
/openbmc/linux/include/linux/
H A Dnfs_fs.h0e574af1 Thu Oct 27 21:12:38 CDT 2005 Trond Myklebust <Trond.Myklebust@netapp.com> NFS: Cleanup initialisation of struct nfs_fattr

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
0e574af1 Thu Oct 27 21:12:38 CDT 2005 Trond Myklebust <Trond.Myklebust@netapp.com> NFS: Cleanup initialisation of struct nfs_fattr

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>