<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs/nfs, branch v4.0</title>
<subtitle>Linux Kernel (branches are rebased on master from time to time)</subtitle>
<id>https://sre.ring0.de/linux/atom?h=v4.0</id>
<link rel='self' href='https://sre.ring0.de/linux/atom?h=v4.0'/>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/'/>
<updated>2015-03-04T02:52:30Z</updated>
<entry>
<title>NFSv4.1: Clear the old state by our client id before establishing a new lease</title>
<updated>2015-03-04T02:52:30Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-03-04T01:35:31Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=e11259f920d8cb3550e0f311c064bdabe1bc3aaf'/>
<id>urn:sha1:e11259f920d8cb3550e0f311c064bdabe1bc3aaf</id>
<content type='text'>
If the call to exchange-id returns with the EXCHGID4_FLAG_CONFIRMED_R flag
set, then that means our lease was established by a previous mount instance.
Ensure that we detect this situation, and that we clear the state held by
that mount.

Reported-by: Jorge Mora &lt;Jorge.Mora@netapp.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>NFSv4: Fix a race in NFSv4.1 server trunking discovery</title>
<updated>2015-03-04T01:42:23Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-03-04T01:28:59Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=48d66b9749e39e0d4cc37d635df3f18906af38a6'/>
<id>urn:sha1:48d66b9749e39e0d4cc37d635df3f18906af38a6</id>
<content type='text'>
We do not want to allow a race with another NFS mount to cause
nfs41_walk_client_list() to establish a lease on our nfs_client before
we're done checking for trunking.

Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>NFS: Don't write enable new pages while an invalidation is proceeding</title>
<updated>2015-03-03T18:58:08Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-03-03T05:06:35Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=ef070dcb3989f553f5d84edf555eebc7e204099d'/>
<id>urn:sha1:ef070dcb3989f553f5d84edf555eebc7e204099d</id>
<content type='text'>
nfs_vm_page_mkwrite() should wait until the page cache invalidation
is finished. This is the second patch in a 2 patch series to deprecate
the NFS client's reliance on nfs_release_page() in the context of
nfs_invalidate_mapping().

Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>NFS: Fix a regression in the read() syscall</title>
<updated>2015-03-03T18:02:29Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-03-03T04:32:08Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=874f946376de57c8d6230b30ad71f742883fee3a'/>
<id>urn:sha1:874f946376de57c8d6230b30ad71f742883fee3a</id>
<content type='text'>
When invalidating the page cache for a regular file, we want to first
sync all dirty data to disk and then call invalidate_inode_pages2().
The latter relies on nfs_launder_page() and nfs_release_page() to deal
respectively with dirty pages, and unstable written pages.

When commit 9590544694bec ("NFS: avoid deadlocks with loop-back mounted
NFS filesystems.") changed the behaviour of nfs_release_page(), then it
made it possible for invalidate_inode_pages2() to fail with an EBUSY.
Unfortunately, that error is then propagated back to read().

Let's therefore work around the problem for now by protecting the call
to sync the data and invalidate_inode_pages2() so that they are atomic
w.r.t. the addition of new writes.
Later on, we can revisit whether or not we still need nfs_launder_page()
and nfs_release_page().

Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>NFSv4: Ensure we skip delegations that are already being returned</title>
<updated>2015-03-02T23:09:15Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-02-26T19:05:05Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=ec3ca4e57e00d52ff724b0ae49f4489667a9c311'/>
<id>urn:sha1:ec3ca4e57e00d52ff724b0ae49f4489667a9c311</id>
<content type='text'>
In nfs_client_return_marked_delegations() and nfs_delegation_reap_unclaimed()
we want to optimise the loop traversal by skipping delegations that are
already in the process of being returned.

Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>NFSv4: Pin the superblock while we're returning the delegation</title>
<updated>2015-03-02T23:09:14Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-02-26T14:57:34Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=9f0f8e12c48e4bb89192a0de876c77dc1fbfaa75'/>
<id>urn:sha1:9f0f8e12c48e4bb89192a0de876c77dc1fbfaa75</id>
<content type='text'>
This patch ensures that the superblock doesn't go ahead and disappear
underneath us while the state manager thread is returning delegations.

Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>NFSv4: Ensure we honour NFS_DELEGATION_RETURNING in nfs_inode_set_delegation()</title>
<updated>2015-03-02T23:09:14Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-02-27T19:25:50Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=ade04647dd56881e285983af3db702d56ee97e86'/>
<id>urn:sha1:ade04647dd56881e285983af3db702d56ee97e86</id>
<content type='text'>
Ensure that nfs_inode_set_delegation() doesn't inadvertently detach a
delegation that is already in the process of being returned.

Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>NFSv4: Ensure that we don't reap a delegation that is being returned</title>
<updated>2015-03-02T23:09:13Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-02-26T18:59:38Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=b04b22f4ca691280f0ab3f77954f5a21500881e7'/>
<id>urn:sha1:b04b22f4ca691280f0ab3f77954f5a21500881e7</id>
<content type='text'>
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>NFS: Fix stateid used for NFS v4 closes</title>
<updated>2015-03-02T23:06:42Z</updated>
<author>
<name>Anna Schumaker</name>
<email>Anna.Schumaker@netapp.com</email>
</author>
<published>2015-03-02T21:46:09Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=369d6b7f00977eb9090212d4a47ac71f3ec5c217'/>
<id>urn:sha1:369d6b7f00977eb9090212d4a47ac71f3ec5c217</id>
<content type='text'>
After 566fcec60 the client uses the "current stateid" from the
nfs4_state structure to close a file.  This could potentially contain a
delegation stateid, which is disallowed by the protocol and causes
servers to return NFS4ERR_BAD_STATEID.  This patch restores the
(correct) behavior of sending the open stateid to close a file.

Reported-by: Olga Kornievskaia &lt;kolga@netapp.com&gt;
Fixes: 566fcec60 (NFSv4: Fix an atomicity problem in CLOSE)
Signed-off-by: Anna Schumaker &lt;Anna.Schumaker@netapp.com&gt;
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
<entry>
<title>NFSv4: Don't call put_rpccred() under the rcu_read_lock()</title>
<updated>2015-03-02T04:23:07Z</updated>
<author>
<name>Trond Myklebust</name>
<email>trond.myklebust@primarydata.com</email>
</author>
<published>2015-02-26T17:54:46Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=7c0af9ffb7bb4e5355470fa60b3eb711ddf226fa'/>
<id>urn:sha1:7c0af9ffb7bb4e5355470fa60b3eb711ddf226fa</id>
<content type='text'>
put_rpccred() can sleep.

Fixes: 8f649c3762547 ("NFSv4: Fix the locking in nfs_inode_reclaim_delegation()")
Cc: stable@vger.kernel.org # 2.6.35+
Signed-off-by: Trond Myklebust &lt;trond.myklebust@primarydata.com&gt;
</content>
</entry>
</feed>
