aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2012-05-26 13:41:04 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-05-26 14:17:31 -0400
commit32b0131069c5bebf52368a9fe170f8d58b78fa8d (patch)
tree540451b739e9938b2f15682a0bab117852bc8e4e /include/linux
parent662455391040a783b89d0232e743c27c23617dbd (diff)
NFSv4.1: Don't clobber the seqid if exchange_id returns a confirmed clientid
If the EXCHGID4_FLAG_CONFIRMED_R flag is set, the client is in theory supposed to already know the correct value of the seqid, in which case RFC5661 states that it should ignore the value returned. Also ensure that if the sanity check in nfs4_check_cl_exchange_flags fails, then we must not change the nfs_client fields. Finally, clean up the code: we don't need to retest the value of 'status' unless it can change. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/nfs_xdr.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
index 6387fc0097fe..d1a7bf51c326 100644
--- a/include/linux/nfs_xdr.h
+++ b/include/linux/nfs_xdr.h
@@ -1132,7 +1132,8 @@ struct nfs41_bind_conn_to_session_res {
1132}; 1132};
1133 1133
1134struct nfs41_exchange_id_res { 1134struct nfs41_exchange_id_res {
1135 struct nfs_client *client; 1135 u64 clientid;
1136 u32 seqid;
1136 u32 flags; 1137 u32 flags;
1137 struct nfs41_server_owner *server_owner; 1138 struct nfs41_server_owner *server_owner;
1138 struct nfs41_server_scope *server_scope; 1139 struct nfs41_server_scope *server_scope;