[pnfs] [PATCH 09/11] nfs41: don't set session state in exchange id
andros at netapp.com
andros at netapp.com
Fri Jul 11 10:39:16 EDT 2008
From: Andy Adamson <andros at netapp.com>
Since the clientid has expired, all compounds using sessions
associated with the stale clientid are trying to use bad sessions and
are in some stage of reset.
Signed-off-by: Andy Adamson<andros at netapp.com>
---
fs/nfs/nfs4proc.c | 24 +++++++++---------------
1 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index fd59406..f5aacaf 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -4326,7 +4326,15 @@ int nfs4_proc_fs_locations(struct inode *dir, const struct qstr *name,
}
#ifdef CONFIG_NFS_V4_1
-static int _nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred)
+/*
+ * nfs4_proc_exchange_id()
+ *
+ * Since the clientid has expired, all compounds using sessions
+ * associated with the stale clientid will be returning
+ * NFS4ERR_BADSESSION in the sequence operation, and will therefore
+ * be in some phase of session reset.
+ */
+static int nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred)
{
nfs4_verifier verifier;
struct nfs41_exchange_id_args args = {
@@ -4400,20 +4408,6 @@ static int _nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred)
return status;
}
-static int nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred)
-{
- struct nfs_server *server;
-
- /*
- * Since we're going to blow away the client id, invalidate all the
- * sessions that were associated with this clientid.
- */
- list_for_each_entry(server, &clp->cl_superblocks, client_link)
- nfs41_set_session_alloc(server->session);
-
- return _nfs4_proc_exchange_id(clp, cred);
-}
-
struct nfs4_get_lease_time_data {
struct nfs4_get_lease_time_args *args;
struct nfs4_get_lease_time_res *res;
--
1.5.4.1
More information about the pNFS
mailing list