<feed xmlns='http://www.w3.org/2005/Atom'>
<title>talos-op-linux/include/linux/nfs_fs.h, branch v2.6.33</title>
<subtitle>Talos™ II Linux sources for OpenPOWER</subtitle>
<id>https://git.raptorcs.com/git/talos-op-linux/atom?h=v2.6.33</id>
<link rel='self' href='https://git.raptorcs.com/git/talos-op-linux/atom?h=v2.6.33'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/'/>
<updated>2009-09-26T17:17:19+00:00</updated>
<entry>
<title>headers: kref.h redux</title>
<updated>2009-09-26T17:17:19+00:00</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2009-09-26T15:37:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=1d1764c39815db55e10b2d78732db4d6dd9d6039'/>
<id>urn:sha1:1d1764c39815db55e10b2d78732db4d6dd9d6039</id>
<content type='text'>
* remove asm/atomic.h inclusion from kref.h -- not needed, linux/types.h
  is enough for atomic_t
* remove linux/kref.h inclusion from files which do not need it.

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>NFS: Fix an O_DIRECT Oops...</title>
<updated>2009-08-12T15:21:39+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2009-08-12T13:12:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=1ae88b2e446261c038f2c0c3150ffae142b227a2'/>
<id>urn:sha1:1ae88b2e446261c038f2c0c3150ffae142b227a2</id>
<content type='text'>
We can't call nfs_readdata_release()/nfs_writedata_release() without
first initialising and referencing args.context. Doing so inside
nfs_direct_read_schedule_segment()/nfs_direct_write_schedule_segment()
causes an Oops.

We should rather be calling nfs_readdata_free()/nfs_writedata_free() in
those cases.

Looking at the O_DIRECT code, the "struct nfs_direct_req" is already
referencing the nfs_open_context for us. Since the readdata and writedata
structures carry a reference to that, we can simplify things by getting rid
of the extra nfs_open_context references, so that we can replace all
instances of nfs_readdata_release()/nfs_writedata_release().

Reported-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Tested-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>NFS: nfs_readpage_async() needs to be accessible as a fallback for local caching</title>
<updated>2009-04-03T15:42:44+00:00</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2009-04-03T15:42:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=f42b293d6d5259043a8944b556eeab427c695d57'/>
<id>urn:sha1:f42b293d6d5259043a8944b556eeab427c695d57</id>
<content type='text'>
nfs_readpage_async() needs to be non-static so that it can be used as a
fallback for the local on-disk caching should an EIO crop up when reading the
cache.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Acked-by: Steve Dickson &lt;steved@redhat.com&gt;
Acked-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Acked-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Tested-by: Daire Byrne &lt;Daire.Byrne@framestore.com&gt;
</content>
</entry>
<entry>
<title>NFS: Use local disk inode cache</title>
<updated>2009-04-03T15:42:43+00:00</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2009-04-03T15:42:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=ef79c097bbe9724e13937271b3457df560e00370'/>
<id>urn:sha1:ef79c097bbe9724e13937271b3457df560e00370</id>
<content type='text'>
Bind data storage objects in the local cache to NFS inodes.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Acked-by: Steve Dickson &lt;steved@redhat.com&gt;
Acked-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Acked-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Tested-by: Daire Byrne &lt;Daire.Byrne@framestore.com&gt;
</content>
</entry>
<entry>
<title>NFS: Add FS-Cache option bit and debug bit</title>
<updated>2009-04-03T15:42:42+00:00</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2009-04-03T15:42:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=c6a6f19e22da0a3d74214ee010224c9a30a794c1'/>
<id>urn:sha1:c6a6f19e22da0a3d74214ee010224c9a30a794c1</id>
<content type='text'>
Add FS-Cache option bit to nfs_server struct.  This is set to indicate local
on-disk caching is enabled for a particular superblock.

Also add debug bit for local caching operations.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Acked-by: Steve Dickson &lt;steved@redhat.com&gt;
Acked-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Acked-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Tested-by: Daire Byrne &lt;Daire.Byrne@framestore.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'devel' into for-linus</title>
<updated>2009-04-01T17:28:15+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2009-04-01T17:28:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=cc85906110e26fe8537c3bdbc08a74ae8110030b'/>
<id>urn:sha1:cc85906110e26fe8537c3bdbc08a74ae8110030b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>constify dentry_operations: NFS</title>
<updated>2009-03-27T18:43:59+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2009-02-20T05:51:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=f786aa90e026f2174bb0c26d49f338c5c46ede55'/>
<id>urn:sha1:f786aa90e026f2174bb0c26d49f338c5c46ede55</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>NFS: Throttle page dirtying while we're flushing to disk</title>
<updated>2009-03-11T18:10:30+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2009-03-11T18:10:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=72cb77f4a5ace37b12dcb47a0e8637a2c28ad881'/>
<id>urn:sha1:72cb77f4a5ace37b12dcb47a0e8637a2c28ad881</id>
<content type='text'>
The following patch is a combination of a patch by myself and Peter
Staubach.

Trond: If we allow other processes to dirty pages while a process is doing
a consistency sync to disk, we can end up never making progress.

Peter: Attached is a patch which addresses a continuing problem with
the NFS client generating out of order WRITE requests.  While
this is compliant with all of the current protocol
specifications, there are servers in the market which can not
handle out of order WRITE requests very well.  Also, this may
lead to sub-optimal block allocations in the underlying file
system on the server.  This may cause the read throughputs to
be reduced when reading the file from the server.

Peter: There has been a lot of work recently done to address out of
order issues on a systemic level.  However, the NFS client is
still susceptible to the problem.  Out of order WRITE
requests can occur when pdflush is in the middle of writing
out pages while the process dirtying the pages calls
generic_file_buffered_write which calls
generic_perform_write which calls
balance_dirty_pages_rate_limited which ends up calling
writeback_inodes which ends up calling back into the NFS
client to writes out dirty pages for the same file that
pdflush happens to be working with.

Signed-off-by: Peter Staubach &lt;staubach@redhat.com&gt;
[modification by Trond to merge the two similar patches]
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: cleanup - remove struct nfs_inode-&gt;ncommit</title>
<updated>2009-03-11T18:10:29+00:00</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2009-03-11T18:10:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=fb8a1f11b64e213d94dfa1cebb2a42a7b8c115c4'/>
<id>urn:sha1:fb8a1f11b64e213d94dfa1cebb2a42a7b8c115c4</id>
<content type='text'>
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>optimize attribute timeouts for "noac" and "actimeo=0"</title>
<updated>2008-12-23T20:21:56+00:00</updated>
<author>
<name>Peter Staubach</name>
<email>staubach@redhat.com</email>
</author>
<published>2008-12-23T20:21:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-op-linux/commit/?id=64672d55d93c26fb4035fd1a84a803cbc09cb058'/>
<id>urn:sha1:64672d55d93c26fb4035fd1a84a803cbc09cb058</id>
<content type='text'>
Hi.

I've been looking at a bugzilla which describes a problem where
a customer was advised to use either the "noac" or "actimeo=0"
mount options to solve a consistency problem that they were
seeing in the file attributes.  It turned out that this solution
did not work reliably for them because sometimes, the local
attribute cache was believed to be valid and not timed out.
(With an attribute cache timeout of 0, the cache should always
appear to be timed out.)

In looking at this situation, it appears to me that the problem
is that the attribute cache timeout code has an off-by-one
error in it.  It is assuming that the cache is valid in the
region, [read_cache_jiffies, read_cache_jiffies + attrtimeo].  The
cache should be considered valid only in the region,
[read_cache_jiffies, read_cache_jiffies + attrtimeo).  With this
change, the options, "noac" and "actimeo=0", work as originally
expected.

This problem was previously addressed by special casing the
attrtimeo == 0 case.  However, since the problem is only an off-
by-one error, the cleaner solution is address the off-by-one
error and thus, not require the special case.

    Thanx...

        ps

Signed-off-by: Peter Staubach &lt;staubach@redhat.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
</feed>
