aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2012-05-27 13:47:21 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-05-27 14:00:08 -0400
commit43ac544cb36adf38338c01968f8e3a5f81b7d629 (patch)
tree8abf285176d59f6d251798112ea28ab724d27cea /fs
parent32b0131069c5bebf52368a9fe170f8d58b78fa8d (diff)
NFSv4.1: nfs4_bind_conn_to_session should drain the session
In order to avoid races with other RPC calls that end up setting the NFS4CLNT_BIND_CONN_TO_SESSION flag. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/nfs/nfs4state.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 7dbca666283a..d21ed0309601 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -1782,10 +1782,12 @@ static int nfs4_bind_conn_to_session(struct nfs_client *clp)
1782 struct rpc_cred *cred; 1782 struct rpc_cred *cred;
1783 int ret; 1783 int ret;
1784 1784
1785 nfs4_begin_drain_session(clp);
1785 cred = nfs4_get_exchange_id_cred(clp); 1786 cred = nfs4_get_exchange_id_cred(clp);
1786 ret = nfs4_proc_bind_conn_to_session(clp, cred); 1787 ret = nfs4_proc_bind_conn_to_session(clp, cred);
1787 if (cred) 1788 if (cred)
1788 put_rpccred(cred); 1789 put_rpccred(cred);
1790 clear_bit(NFS4CLNT_BIND_CONN_TO_SESSION, &clp->cl_state);
1789 return ret; 1791 return ret;
1790} 1792}
1791#else /* CONFIG_NFS_V4_1 */ 1793#else /* CONFIG_NFS_V4_1 */