<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.linux.nfs">
    <title>gmane.linux.nfs</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50074"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50073"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50072"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50071"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50070"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50069"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50068"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50067"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50066"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50065"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50064"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50063"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50062"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50061"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50060"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50058"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50057"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50054"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50053"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.nfs/50052"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50074">
    <title>Re: [PATCH] NFSD: TEST_STATEID should not return NFS4ERR_STALE_STATEID</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50074</link>
    <description>&lt;pre&gt;
On May 25, 2012, at 9:46 AM, J. Bruce Fields wrote:


RFC 5661 says specifically that TEST_STATEID should return NFS4ERR_BAD_STATEID in this case.


In my nograce test, the server does get past the SEQUENCE.  So maybe there's a bug there too?


That's interesting.  I can redrive this patch with this change.

Yes, I think checking for buggy clients is a good idea.


&lt;/pre&gt;</description>
    <dc:creator>Chuck Lever</dc:creator>
    <dc:date>2012-05-25T23:30:19</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50073">
    <title>[PATCH 4/4] SUNRPC: Use gssproxy upcall for nfsd's RPCGSS authentication.</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50073</link>
    <description>&lt;pre&gt;The main advantge of this new upcall mechanism is that it can handle
big tickets as seen in Kerberos implementations where tickets carry
authorization data like the MS-PAC buffer with AD or the Posix Authorization
Data being discussed in IETF on the krbwg working group.

The Gssproxy program is used to perform the accept_sec_context call on the
kernel's behalf. The code is changed to also pass the input buffer straight
to upcall mechanism to avoid allocating and copying many pages as tokens can
be as big (potentially more in future) as 64KiB.

Signed-off-by: Simo Sorce &amp;lt;simo-H+wXaHxf7aLQT0dZR+AlfA&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 include/linux/sunrpc/auth_gss.h    |    3 +
 include/linux/sunrpc/svcauth_gss.h |    2 +-
 net/sunrpc/auth_gss/auth_gss.c     |    9 ++-
 net/sunrpc/auth_gss/svcauth_gss.c  |  223 +++++++++++++++++++++++++++++++++--
 4 files changed, 222 insertions(+), 15 deletions(-)

diff --git a/include/linux/sunrpc/auth_gss.h b/include/linux/sunrpc/auth_gss.h
index f1cfd4c85cd047c4b2fadd367eeb819aabc57d29&lt;/pre&gt;</description>
    <dc:creator>Simo Sorce</dc:creator>
    <dc:date>2012-05-25T22:09:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50072">
    <title>[PATCH 2/4] SUNRPC: Document a bit RPCGSS handling in the NFS Server</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50072</link>
    <description>&lt;pre&gt;Includes changes intorduced by GSS-Proxy.

Signed-off-by: Simo Sorce &amp;lt;simo-H+wXaHxf7aLQT0dZR+AlfA&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 Documentation/filesystems/nfs/00-INDEX         |    2 +
 Documentation/filesystems/nfs/knfsd-rpcgss.txt |   65 ++++++++++++++++++++++++
 2 files changed, 67 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/filesystems/nfs/knfsd-rpcgss.txt

diff --git a/Documentation/filesystems/nfs/00-INDEX b/Documentation/filesystems/nfs/00-INDEX
index 1716874a651e1c574e7ca9719dfb4e3521b0a5e9..66eb6c8c5334518ddbc10115c7b34b4dfb1b3c0e 100644
--- a/Documentation/filesystems/nfs/00-INDEX
+++ b/Documentation/filesystems/nfs/00-INDEX
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -20,3 +20,5 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; rpc-cache.txt
 - introduction to the caching mechanisms in the sunrpc layer.
 idmapper.txt
 - information for configuring request-keys to be used by idmapper
+knfsd-rpcgss.txt
+- Information on GSS authentication support in the NFS Server
diff --git a/Documentation/filesystems/nfs/knfsd-rpcgss.txt b/Documentation/filesystems/nfs/knfsd-rpcgss.txt&lt;/pre&gt;</description>
    <dc:creator>Simo Sorce</dc:creator>
    <dc:date>2012-05-25T22:09:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50071">
    <title>[PATCH 1/4] SUNRPC: conditionally return endtime from import_sec_context</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50071</link>
    <description>&lt;pre&gt;We expose this parameter for a future caller.
It will be used to extract the endtime from the gss-proxy upcall mechanism,
in order to set the rsc cache expiration time.

Signed-off-by: Simo Sorce &amp;lt;simo-H+wXaHxf7aLQT0dZR+AlfA&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 include/linux/sunrpc/gss_api.h        |    2 ++
 net/sunrpc/auth_gss/auth_gss.c        |    2 +-
 net/sunrpc/auth_gss/gss_krb5_mech.c   |    3 +++
 net/sunrpc/auth_gss/gss_mech_switch.c |    5 +++--
 net/sunrpc/auth_gss/svcauth_gss.c     |    3 ++-
 5 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/include/linux/sunrpc/gss_api.h b/include/linux/sunrpc/gss_api.h
index 332da61cf8b71fc73d802b2609210f46641a9ea1..7bd486d50f0861b45c98e695751c2f92f1b3bdfa 100644
--- a/include/linux/sunrpc/gss_api.h
+++ b/include/linux/sunrpc/gss_api.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -36,6 +36,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int gss_import_sec_context(
 size_tbufsize,
 struct gss_api_mech*mech,
 struct gss_ctx**ctx_id,
+time_t*endtime,
 gfp_tgfp_mask);
 u32 gss_get_mic(
 struct gss_ctx*ctx_id,
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -91,6 +9&lt;/pre&gt;</description>
    <dc:creator>Simo Sorce</dc:creator>
    <dc:date>2012-05-25T22:09:53</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50070">
    <title>[PATCH 3/4] SUNRPC: Add RPC based upcall mechanism for RPCGSS auth</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50070</link>
    <description>&lt;pre&gt;This patch implements a sunrpc client to use the services of the gssproxy
userspace daemon.

In particular it allows to perform calls in user space using an RPC
call instead of custom hand-coded upcall/downcall messages.

Currently only accept_sec_context is implemented as that is all is needed for
the server case.

File server modules like NFS and CIFS can use full gssapi services this way,
once init_sec_context is also implemented.

For the NFS server case this code allow to lift the limit of max 2k krb5
tickets. This limit is prevents legitimate kerberos deployments from using krb5
authentication with the Linux NFS server as they have normally ticket that are
many kilobytes large.

It will also allow to lift the limitation on the size of the credential set
(uid,gid,gids) passed down from user space for users that have very many groups
associated. Currently the downcall mechanism used by rpc.svcgssd is limited
to around 2k secondary groups of the 65k allowed by kernel structures.

Signed-off-by: Simo Sorce&lt;/pre&gt;</description>
    <dc:creator>Simo Sorce</dc:creator>
    <dc:date>2012-05-25T22:09:55</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50069">
    <title>[PATCH 0/4] Add support for new RPCSEC_GSS upcall mechanism for nfsd</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50069</link>
    <description>&lt;pre&gt;This patchset implements a new upcall mechanism that uses the sunrpc
client to talk to gssproxy[1], a new userspace daemon that handles gssapi
operations on behalf of other processes on the system.

The main driver for this new mechanism is to overcome limitations with
the current daemon and upcall. The current code cannot handle tickets
larger than approximatively 2k and cannot handle sending back large user
credential sets to the kernel.

These patches have been tested against the development version of gssproxy
tagged as kernel_v0.1 in the master repo[2].

I have tested walking into mountpoints using tickets artificially pumped
up to 64k and the user is properly authorized, after the accept_se_context
call is performed through the new upcall mechanism and gssproxy.

The gssproxy has the potential of handling also init_sec_context calls,
but at the moment the only targeted system is nfsd.

Simo.

[1] https://fedorahosted.org/gss-proxy/
[2] http://git.fedorahosted.org/git/?p=gss-proxy.git;a=shortlog;h=refs/&lt;/pre&gt;</description>
    <dc:creator>Simo Sorce</dc:creator>
    <dc:date>2012-05-25T22:09:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50068">
    <title>[PATCH 6/8] NFSv4.1: Ensure we use the correct credentials for session create/destroy</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50068</link>
    <description>&lt;pre&gt;Signed-off-by: Trond Myklebust &amp;lt;Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 fs/nfs/nfs4_fs.h   |    4 ++--
 fs/nfs/nfs4proc.c  |   27 +++++++++++++++++----------
 fs/nfs/nfs4state.c |   10 +++++++---
 3 files changed, 26 insertions(+), 15 deletions(-)

diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h
index 5fcb1ad..a5dbe62 100644
--- a/fs/nfs/nfs4_fs.h
+++ b/fs/nfs/nfs4_fs.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -241,8 +241,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; extern int nfs41_setup_sequence(struct nfs4_session *session,
 struct rpc_task *task);
 extern void nfs4_destroy_session(struct nfs4_session *session);
 extern struct nfs4_session *nfs4_alloc_session(struct nfs_client *clp);
-extern int nfs4_proc_create_session(struct nfs_client *);
-extern int nfs4_proc_destroy_session(struct nfs4_session *);
+extern int nfs4_proc_create_session(struct nfs_client *, struct rpc_cred *);
+extern int nfs4_proc_destroy_session(struct nfs4_session *, struct rpc_cred *);
 extern int nfs4_init_session(struct nfs_server *server);
 extern int nfs4_proc_get_lease_time(struc&lt;/pre&gt;</description>
    <dc:creator>Trond Myklebust</dc:creator>
    <dc:date>2012-05-25T22:03:20</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50067">
    <title>[PATCH 4/8] NFSv4.1: Handle NFS4ERR_SEQ_MISORDERED when confirming the lease</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50067</link>
    <description>&lt;pre&gt;Apparently the patch "NFS: Always use the same SETCLIENTID boot verifier"
is tickling a Linux nfs server bug, and causing a regression: the server
can get into a situation where it keeps replying NFS4ERR_SEQ_MISORDERED
to our CREATE_SESSION request even when we are sending the correct
sequence ID.

Fix this by purging the lease and then retrying.

Reported-by: Bryan Schumaker &amp;lt;bjschuma-HgOvQuBEEgTQT0dZR+AlfA&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
Signed-off-by: Trond Myklebust &amp;lt;Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 fs/nfs/nfs4state.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 604c600..419f8c4 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1580,6 +1580,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; out:
 static int nfs4_handle_reclaim_lease_error(struct nfs_client *clp, int status)
 {
 switch (status) {
+case -NFS4ERR_SEQ_MISORDERED:
+if (test_and_set_bit(NFS4CLNT_PURGE_STATE, &amp;amp;clp-&amp;gt;cl_state))
+return -ESERVERFAULT;
+/* Lease confirmation error:&lt;/pre&gt;</description>
    <dc:creator>Trond Myklebust</dc:creator>
    <dc:date>2012-05-25T22:03:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50066">
    <title>[PATCH 5/8] NFSv4.1: Move NFSPROC4_CLNT_BIND_CONN_TO_SESSION to the end of the operations</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50066</link>
    <description>&lt;pre&gt;For backward compatibility with nfs-utils.

Signed-off-by: Trond Myklebust &amp;lt;Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
Cc: Weston Andros Adamson &amp;lt;dros-HgOvQuBEEgTQT0dZR+AlfA&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 fs/nfs/nfs4xdr.c     |    4 ++--
 include/linux/nfs4.h |    2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
index a6b95b7..1d4d259 100644
--- a/fs/nfs/nfs4xdr.c
+++ b/fs/nfs/nfs4xdr.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -7221,8 +7221,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct rpc_procinfonfs4_procedures[] = {
 PROC(RELEASE_LOCKOWNER,enc_release_lockowner,dec_release_lockowner),
 PROC(SECINFO,enc_secinfo,dec_secinfo),
 #if defined(CONFIG_NFS_V4_1)
-PROC(BIND_CONN_TO_SESSION,
-enc_bind_conn_to_session, dec_bind_conn_to_session),
 PROC(EXCHANGE_ID,enc_exchange_id,dec_exchange_id),
 PROC(CREATE_SESSION,enc_create_session,dec_create_session),
 PROC(DESTROY_SESSION,enc_destroy_session,dec_destroy_session),
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -7237,6 +7235,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct rpc_procinfonfs4_procedures[] = {
 PROC(TEST_STATEID,en&lt;/pre&gt;</description>
    <dc:creator>Trond Myklebust</dc:creator>
    <dc:date>2012-05-25T22:03:19</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50065">
    <title>[PATCH 2/8] NFSv4: Clean up the error handling for nfs4_reclaim_lease</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50065</link>
    <description>&lt;pre&gt;Try to consolidate the error handling for nfs4_reclaim_lease into
a single function instead of doing a bit here, and a bit there...

Also ensure that NFS4CLNT_PURGE_STATE handles errors correctly.

Signed-off-by: Trond Myklebust &amp;lt;Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 fs/nfs/nfs4state.c |   99 ++++++++++++++++++++++++++-------------------------
 1 files changed, 50 insertions(+), 49 deletions(-)

diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 03fa802..758b9a8 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1574,26 +1574,57 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; out:
 return nfs4_recovery_handle_error(clp, status);
 }
 
+/* Set NFS4CLNT_LEASE_EXPIRED for all v4.0 errors and for recoverable errors
+ * on EXCHANGE_ID for v4.1
+ */
+static int nfs4_handle_reclaim_lease_error(struct nfs_client *clp, int status)
+{
+switch (status) {
+case -NFS4ERR_CLID_INUSE:
+case -NFS4ERR_STALE_CLIENTID:
+clear_bit(NFS4CLNT_LEASE_CONFIRM, &amp;amp;clp-&amp;gt;cl_state);
+break;
+case -EACCES:
+if (clp-&amp;gt;cl_machine_cred =&lt;/pre&gt;</description>
    <dc:creator>Trond Myklebust</dc:creator>
    <dc:date>2012-05-25T22:03:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50064">
    <title>[PATCH 7/8] NFSv4.1: Ensure we use the correct credentials for bind_conn_to_session</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50064</link>
    <description>&lt;pre&gt;Signed-off-by: Trond Myklebust &amp;lt;Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
Cc: Weston Andros Adamson &amp;lt;dros-HgOvQuBEEgTQT0dZR+AlfA&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 fs/nfs/nfs4_fs.h   |    2 +-
 fs/nfs/nfs4proc.c  |    3 ++-
 fs/nfs/nfs4state.c |    9 ++++++++-
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h
index a5dbe62..f730730 100644
--- a/fs/nfs/nfs4_fs.h
+++ b/fs/nfs/nfs4_fs.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -212,7 +212,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct vfsmount *nfs4_submount(struct nfs_server *, struct dentry *,
 extern int nfs4_proc_setclientid(struct nfs_client *, u32, unsigned short, struct rpc_cred *, struct nfs4_setclientid_res *);
 extern int nfs4_proc_setclientid_confirm(struct nfs_client *, struct nfs4_setclientid_res *arg, struct rpc_cred *);
 extern int nfs4_proc_get_rootfh(struct nfs_server *, struct nfs_fh *, struct nfs_fsinfo *);
-extern int nfs4_proc_bind_conn_to_session(struct nfs_client *);
+extern int nfs4_proc_bind_conn_to_session(struct nfs_client *, struct rpc_cred *cred);
 ex&lt;/pre&gt;</description>
    <dc:creator>Trond Myklebust</dc:creator>
    <dc:date>2012-05-25T22:03:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50063">
    <title>[PATCH 8/8] NFSv4.1: Add DESTROY_CLIENTID</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50063</link>
    <description>&lt;pre&gt;Ensure that we destroy our lease on last unmount

Signed-off-by: Trond Myklebust &amp;lt;Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 fs/nfs/client.c      |    1 +
 fs/nfs/nfs4_fs.h     |    1 +
 fs/nfs/nfs4proc.c    |   32 ++++++++++++++++++++++++++++++
 fs/nfs/nfs4xdr.c     |   52 ++++++++++++++++++++++++++++++++++++++++++++++++++
 include/linux/nfs4.h |    1 +
 5 files changed, 87 insertions(+), 0 deletions(-)

diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index a50bdfb..7d10875 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -209,6 +209,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void nfs4_shutdown_session(struct nfs_client *clp)
 if (nfs4_has_session(clp)) {
 nfs4_deviceid_purge_client(clp);
 nfs4_destroy_session(clp-&amp;gt;cl_session);
+nfs4_destroy_clientid(clp);
 }
 
 }
diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h
index f730730..b20b516 100644
--- a/fs/nfs/nfs4_fs.h
+++ b/fs/nfs/nfs4_fs.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -214,6 +214,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; extern int nfs4_proc_setclientid_confirm(struct nfs_client *, struct nfs4_setcli
 extern int nfs4_proc&lt;/pre&gt;</description>
    <dc:creator>Trond Myklebust</dc:creator>
    <dc:date>2012-05-25T22:03:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50062">
    <title>[PATCH 3/8] NFSv4: When purging the lease, we must clear NFS4CLNT_LEASE_CONFIRM</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50062</link>
    <description>&lt;pre&gt;Otherwise we can end up not sending a new exchange-id/setclientid

Signed-off-by: Trond Myklebust &amp;lt;Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 fs/nfs/nfs4state.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 758b9a8..604c600 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1647,6 +1647,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void nfs4_reset_all_state(struct nfs_client *clp)
 {
 if (test_and_set_bit(NFS4CLNT_LEASE_EXPIRED, &amp;amp;clp-&amp;gt;cl_state) == 0) {
 set_bit(NFS4CLNT_PURGE_STATE, &amp;amp;clp-&amp;gt;cl_state);
+clear_bit(NFS4CLNT_LEASE_CONFIRM, &amp;amp;clp-&amp;gt;cl_state);
 nfs4_state_start_reclaim_nograce(clp);
 nfs4_schedule_state_manager(clp);
 }
&lt;/pre&gt;</description>
    <dc:creator>Trond Myklebust</dc:creator>
    <dc:date>2012-05-25T22:03:17</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50061">
    <title>[PATCH 1/8] NFSv4.1: Exchange ID must use GFP_NOFS allocation mode</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50061</link>
    <description>&lt;pre&gt;Exchange ID can be called in a lease reclaim situation, so it
will deadlock if it then tries to write out dirty NFS pages.

Signed-off-by: Trond Myklebust &amp;lt;Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 fs/nfs/nfs4proc.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index e8988c0..f8817e8 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -5192,20 +5192,20 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred)
 clp-&amp;gt;cl_rpcclient-&amp;gt;cl_auth-&amp;gt;au_flavor);
 
 res.server_owner = kzalloc(sizeof(struct nfs41_server_owner),
-GFP_KERNEL);
+GFP_NOFS);
 if (unlikely(res.server_owner == NULL)) {
 status = -ENOMEM;
 goto out;
 }
 
 res.server_scope = kzalloc(sizeof(struct nfs41_server_scope),
-GFP_KERNEL);
+GFP_NOFS);
 if (unlikely(res.server_scope == NULL)) {
 status = -ENOMEM;
 goto out_server_owner;
 }
 
-res.impl_id = kzalloc(sizeof(struct nfs41_impl_id), GFP_KERNEL);
+&lt;/pre&gt;</description>
    <dc:creator>Trond Myklebust</dc:creator>
    <dc:date>2012-05-25T22:03:15</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50060">
    <title>Re: [PATCH 4/4] SUNRPC: Use gssproxy upcall for nfsd's RPCGSS authentication.</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50060</link>
    <description>&lt;pre&gt;
Ok, I think the easiest way is to pass in a pointer to a uin64_t to be
filled with ctxh, and use it to fill cli_handle in the caller.
This makes it all more understandable to me, and avoids the kmalloc.


Will do.

Simo.

&lt;/pre&gt;</description>
    <dc:creator>Simo Sorce</dc:creator>
    <dc:date>2012-05-25T15:37:42</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50058">
    <title>Re: [PATCH 4/4] SUNRPC: Use gssproxy upcall for nfsd's RPCGSS authentication.</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50058</link>
    <description>&lt;pre&gt;
Whatever results in the easier-to-understand code at the end.


Since this would be a bug in our code (kernel or userspace), let's do
whatever makes it most obvious it's a bug.  At a minimum, a /* userspace
is buggy */ comment there.

--b.
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA&amp;lt; at &amp;gt;public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

&lt;/pre&gt;</description>
    <dc:creator>J. Bruce Fields</dc:creator>
    <dc:date>2012-05-25T14:05:01</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50057">
    <title>Re: [PATCH] NFSD: TEST_STATEID should not return NFS4ERR_STALE_STATEID</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50057</link>
    <description>&lt;pre&gt;
After the client's lease expires, the SEQUENCE operation will fail.

(Which I believe to be a valid, if unforgiving, server implementation.
If we were to implement "courtesy locks" in this case, I believe we'd
remember the clientid for longer, permit the SEQUENCE, and fail
individual stateid's with EXPIRED as appropriate?)


Thanks for the explanation!


Sure; nits:


Or inval?  This is just a buggy client.


Again, this is just a buggy client, since we shouldn't have gotten past
the SEQUENCE in this case unless the client's sending a stateid that's
actually someone else's.

If you think it's worth checking for those buggy client cases, we could
instaed check that stateid-&amp;gt;si_opaque.so_clid and cl-&amp;gt;clientid agree.
That'd cover the special-stateid checks too.


So this must be the case you actually hit.  Agreed with this change.


--b.

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA&amp;lt; at &amp;gt;public.gmane.org
More majordomo info at  &lt;/pre&gt;</description>
    <dc:creator>J. Bruce Fields</dc:creator>
    <dc:date>2012-05-25T13:46:36</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50054">
    <title>BUG: At key_instantiate_and_link+0x2e/0xa0</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50054</link>
    <description>&lt;pre&gt;I got the below on a 3.4-rc7 based Benny's pnfs tree.

During normal nfs4 only operations. (Just my development trees mounted on client machine)

If it will happen again I will investigate. I'll leave it off for now (busy with other stuff)

Just wanted to know if it might have already been fix or seen by someone else

[ 3830.441139] BUG: unable to handle kernel NULL pointer dereference at 0000000000000078
[ 3830.442024] IP: [&amp;lt;ffffffff812894ce&amp;gt;] key_instantiate_and_link+0x2e/0xa0
[ 3830.442024] PGD 0 
[ 3830.442024] Oops: 0000 [#1] SMP 
[ 3830.442024] CPU 1 
[ 3830.442024] Modules linked in: osd libosd nfsd nfs lockd fscache auth_rpcgss nfs_acl sunrpc ip6t_REJECT be2iscsi nf_conntrack_ipv6 nf_defrag_ipv6 iscsi_boot_sysfs xt_state bnx2i nf_conntrack cnic uio cxgb3i libcxgbi cxgb3 mdio ip6table_filter ib_iser rdma_cm ib_cm iw_cm ib_sa ib_mad ib_core ib_addr ip6_tables iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi joydev virtio_balloon i2c_piix4 i2c_core pcspkr virtio_net microcode floppy virtio_blk [last&lt;/pre&gt;</description>
    <dc:creator>Boaz Harrosh</dc:creator>
    <dc:date>2012-05-25T10:12:47</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50053">
    <title>Re: 3.4. sunrpc oops during shutdown</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50053</link>
    <description>&lt;pre&gt;
Trond, looks like you are mistaken here.
Any process holds references to all namespaces it belong to (copy_net_ns() 
increase usage counter). And network namespace is released after mount namespace 
in free_nsproxy.


I've sent patches, which moves svc_shutdown_net() from svc_destroy() ("SUNRPC: 
separate per-net data creation from service").
with this patch set it's assumed, that per-net resources will be created or 
released prior to service creation and destruction.



&lt;/pre&gt;</description>
    <dc:creator>Stanislav Kinsbursky</dc:creator>
    <dc:date>2012-05-25T08:12:34</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50052">
    <title>3.0+ NFS issues</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50052</link>
    <description>&lt;pre&gt;Hello.

I updated my nfs server machine to kernel 3.0, and
noticed that its main usage become, well, problematic.

While trying to dig deeper, I also found a few other
interesting issues, which are mentioned below.

But first thing first: nfs.

i686pae kernel, lots of RAM, Atom-based (cedar trail)
machine with usual rtl8169 NIC.  3.0 or 3.2 kernel
(I will try current 3.4 but I don't have much hopes
there).  NFSv4.

When a client machine (also 3.0 kernel) does some reading,
the process often stalls somewhere in the read syscall,
or, rarer, during close, for up to two MINUTES.  During
this time, the client (kernel) reports "NFS server &amp;lt;foo&amp;gt;
does not respond" several times, and finally "NFS server
&amp;lt;foo&amp;gt; ok", client process "unstucks" from the read(2),
and is able to perform a few more reads till the whole
thing repeats.

While this happens, ie, while the client process is stuck,
any access to the mounted filesystem results in an
uninterruptible sleep - all processes including the
initial client are unkillable. &lt;/pre&gt;</description>
    <dc:creator>Michael Tokarev</dc:creator>
    <dc:date>2012-05-25T06:53:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.nfs/50051">
    <title>[PATCH 2/2] nfs41: Use BIND_CONN_TO_SESSION for CB_PATH_DOWN*</title>
    <link>http://permalink.gmane.org/gmane.linux.nfs/50051</link>
    <description>&lt;pre&gt;The state manager can handle SEQ4_STATUS_CB_PATH_DOWN* flags with a
BIND_CONN_TO_SESSION instead of destroying the session and creating a new one.

Signed-off-by: Weston Andros Adamson &amp;lt;dros-HgOvQuBEEgTQT0dZR+AlfA&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
Updated with comments from Trond.

I got to remember to test with different CONFIG options *after* I clean up the
patch :)

 fs/nfs/nfs4_fs.h   |    1 +
 fs/nfs/nfs4state.c |   31 +++++++++++++++++++++++++++----
 2 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h
index ad90bc7..9feff0f 100644
--- a/fs/nfs/nfs4_fs.h
+++ b/fs/nfs/nfs4_fs.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -24,6 +24,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; enum nfs4_client_state {
 NFS4CLNT_RECALL_SLOT,
 NFS4CLNT_LEASE_CONFIRM,
 NFS4CLNT_SERVER_SCOPE_MISMATCH,
+NFS4CLNT_BIND_CONN_TO_SESSION,
 };
 
 enum nfs4_session_state {
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 7f0fcfc..4f41144 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1639,13 +1639,20 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void nfs41_handle_recallable_state_revoke&lt;/pre&gt;</description>
    <dc:creator>Weston Andros Adamson</dc:creator>
    <dc:date>2012-05-24T21:19:34</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.linux.nfs">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.linux.nfs</link>
  </textinput>
</rdf:RDF>

