summaryrefslogtreecommitdiffstats
path: root/fs/nfs/client.c
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2010-06-16 15:52:27 +0200
committerTrond Myklebust <Trond.Myklebust@netapp.com>2010-06-22 19:24:03 +0200
commitfe74ba3a8db003410e48863a5cafa6ac90674540 (patch)
tree8a3014b14a3c48d997ac08a378128e8b4202b00d /fs/nfs/client.c
parentNFSv41: Clean up exclusive create (diff)
downloadlinux-fe74ba3a8db003410e48863a5cafa6ac90674540.tar.xz
linux-fe74ba3a8db003410e48863a5cafa6ac90674540.zip
NFSv41: Cleanup for nfs4_alloc_session.
There is no reason to change the nfs_client state every time we allocate a new session. Move that line into nfs4_init_client_minor_version. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/client.c')
-rw-r--r--fs/nfs/client.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index 1df708fd4205..4e7df2adb212 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -1157,6 +1157,13 @@ static int nfs4_init_client_minor_version(struct nfs_client *clp)
return -ENOMEM;
clp->cl_session = session;
+ /*
+ * The create session reply races with the server back
+ * channel probe. Mark the client NFS_CS_SESSION_INITING
+ * so that the client back channel can find the
+ * nfs_client struct
+ */
+ clp->cl_cons_state = NFS_CS_SESSION_INITING;
}
#endif /* CONFIG_NFS_V4_1 */