<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs/nfs/nfs4proc.c, branch v3.7-rc5</title>
<subtitle>Linux Kernel (branches are rebased on master from time to time)</subtitle>
<id>https://sre.ring0.de/linux/atom?h=v3.7-rc5</id>
<link rel='self' href='https://sre.ring0.de/linux/atom?h=v3.7-rc5'/>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/'/>
<updated>2012-11-02T22:51:54Z</updated>
<entry>
<title>NFS4: nfs4_opendata_access should return errno</title>
<updated>2012-11-02T22:51:54Z</updated>
<author>
<name>Weston Andros Adamson</name>
<email>dros@netapp.com</email>
</author>
<published>2012-11-02T22:00:56Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=998f40b550f257e436485291802fa938e4cf580f'/>
<id>urn:sha1:998f40b550f257e436485291802fa938e4cf580f</id>
<content type='text'>
Return errno - not an NFS4ERR_. This worked because NFS4ERR_ACCESS == EACCES.

Signed-off-by: Weston Andros Adamson &lt;dros@netapp.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFSv4: Initialise the NFSv4.1 slot table highest_used_slotid correctly</title>
<updated>2012-11-01T16:02:03Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2012-10-29T20:48:40Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=f9b1ef5f06d65a01952169b67d474f7f0dcb0206'/>
<id>urn:sha1:f9b1ef5f06d65a01952169b67d474f7f0dcb0206</id>
<content type='text'>
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFS: add nfs_sb_deactive_async to avoid deadlock</title>
<updated>2012-10-31T20:26:26Z</updated>
<author>
<name>Weston Andros Adamson</name>
<email>dros@netapp.com</email>
</author>
<published>2012-10-30T21:01:39Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=324d003b0cd82151adbaecefef57b73f7959a469'/>
<id>urn:sha1:324d003b0cd82151adbaecefef57b73f7959a469</id>
<content type='text'>
Use nfs_sb_deactive_async instead of nfs_sb_deactive when in a workqueue
context.  This avoids a deadlock where rpc_shutdown_client loops forever
in a workqueue kworker context, trying to kill all RPC tasks associated with
the client, while one or more of these tasks have already been assigned to the
same kworker (and will never run rpc_exit_task).

This approach is needed because RPC tasks that have already been assigned
to a kworker by queue_work cannot be canceled, as explained in the comment
for workqueue.c:insert_wq_barrier.

Signed-off-by: Weston Andros Adamson &lt;dros@netapp.com&gt;
[Trond: add module_get/put.]
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFSv4: nfs4_locku_done must release the sequence id</title>
<updated>2012-10-31T19:10:04Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2012-10-29T22:53:23Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=2b1bc308f492589f7d49012ed24561534ea2be8c'/>
<id>urn:sha1:2b1bc308f492589f7d49012ed24561534ea2be8c</id>
<content type='text'>
If the state recovery machinery is triggered by the call to
nfs4_async_handle_error() then we can deadlock.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Cc: stable@vger.kernel.org
</content>
</entry>
<entry>
<title>NFSv4.1: We must release the sequence id when we fail to get a session slot</title>
<updated>2012-10-31T19:08:18Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2012-10-29T22:37:40Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=2240a9e2d013d8269ea425b73e1d7a54c7bc141f'/>
<id>urn:sha1:2240a9e2d013d8269ea425b73e1d7a54c7bc141f</id>
<content type='text'>
If we do not release the sequence id in cases where we fail to get a
session slot, then we can deadlock if we hit a recovery scenario.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Cc: stable@vger.kernel.org
</content>
</entry>
<entry>
<title>NFS: Wait for session recovery to finish before returning</title>
<updated>2012-10-31T17:13:28Z</updated>
<author>
<name>Bryan Schumaker</name>
<email>bjschuma@netapp.com</email>
</author>
<published>2012-10-30T20:06:35Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=399f11c3d872bd748e1575574de265a6304c7c43'/>
<id>urn:sha1:399f11c3d872bd748e1575574de265a6304c7c43</id>
<content type='text'>
Currently, we will schedule session recovery and then return to the
caller of nfs4_handle_exception.  This works for most cases, but causes
a hang on the following test case:

	Client				Server
	------				------
	Open file over NFS v4.1
	Write to file
					Expire client
	Try to lock file

The server will return NFS4ERR_BADSESSION, prompting the client to
schedule recovery.  However, the client will continue placing lock
attempts and the open recovery never seems to be scheduled.  The
simplest solution is to wait for session recovery to run before retrying
the lock.

Signed-off-by: Bryan Schumaker &lt;bjschuma@netapp.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
Cc: stable@vger.kernel.org
</content>
</entry>
<entry>
<title>NFSv4 set open access operation call flag in nfs4_init_opendata_res</title>
<updated>2012-10-04T00:10:28Z</updated>
<author>
<name>Andy Adamson</name>
<email>andros@netapp.com</email>
</author>
<published>2012-10-03T06:39:34Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=5f65753033d8c5a53e65810bff3832e8282c68d1'/>
<id>urn:sha1:5f65753033d8c5a53e65810bff3832e8282c68d1</id>
<content type='text'>
nfs4_open_recover_helper zeros the nfs4_opendata result structures, removing
the result access_request information which leads to an XDR decode error.

Move the setting of the result access_request field to nfs4_init_opendata_res
which sets all the other required nfs4_opendata result fields and is shared
between the open and recover open paths.

Signed-off-by: Andy Adamson &lt;andros@netapp.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFSv4 reduce attribute requests for open reclaim</title>
<updated>2012-10-03T01:12:25Z</updated>
<author>
<name>Andy Adamson</name>
<email>andros@netapp.com</email>
</author>
<published>2012-10-03T01:07:32Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=e23008ec81ef37b7b271669ce5d2de2643b2dc75'/>
<id>urn:sha1:e23008ec81ef37b7b271669ce5d2de2643b2dc75</id>
<content type='text'>
We currently make no distinction in attribute requests between normal OPENs
and OPEN with CLAIM_PREVIOUS.  This offers more possibility of failures in
the GETATTR response which foils OPEN reclaim attempts.

Reduce the requested attributes to the bare minimum needed to update the
reclaim open stateid and split nfs4_opendata_to_nfs4_state processing
accordingly.

Signed-off-by: Andy Adamson &lt;andros@netapp.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFSv4: nfs4_open_done first must check that GETATTR decoded a file type</title>
<updated>2012-10-03T00:09:00Z</updated>
<author>
<name>Trond Myklebust</name>
<email>Trond.Myklebust@netapp.com</email>
</author>
<published>2012-10-03T00:09:00Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=807d66d80221920729a8d4abfa04246546a6d3fa'/>
<id>urn:sha1:807d66d80221920729a8d4abfa04246546a6d3fa</id>
<content type='text'>
...before it can check the validity of that file type.

Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
<entry>
<title>NFSv4: don't put ACCESS in OPEN compound if O_EXCL</title>
<updated>2012-10-02T21:56:19Z</updated>
<author>
<name>Weston Andros Adamson</name>
<email>dros@netapp.com</email>
</author>
<published>2012-10-02T21:49:52Z</published>
<link rel='alternate' type='text/html' href='https://sre.ring0.de/linux/commit/?id=ae2bb03236fc978bdf673c19d39832500793b83c'/>
<id>urn:sha1:ae2bb03236fc978bdf673c19d39832500793b83c</id>
<content type='text'>
Don't put an ACCESS op in OPEN compound if O_EXCL, because ACCESS
will return permission denied for all bits until close.

Fixes a regression due to commit 6168f62c (NFSv4: Add ACCESS operation to
OPEN compound)

Signed-off-by: Weston Andros Adamson &lt;dros@netapp.com&gt;
Signed-off-by: Trond Myklebust &lt;Trond.Myklebust@netapp.com&gt;
</content>
</entry>
</feed>
