NFSv4.1: Ensure that the client tracks the server target_highest_slotid
Dynamic slot allocation in NFSv4.1 depends on the client being able to track the server's target value for the highest slotid in the slot table. See the reference in Section 2.10.6.1 of RFC5661. To avoid ordering problems in the case where 2 SEQUENCE replies contain conflicting updates to this target value, we also introduce a generation counter, to track whether or not an RPC containing a SEQUENCE operation was launched before or after the last update. Also rename the nfs4_slot_table target_max_slots field to 'target_highest_slotid' to avoid confusion with a slot table size or number of slots. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
f4af6e2abc
commit
464ee9f966
6 changed files with 36 additions and 9 deletions
|
@ -5552,8 +5552,8 @@ static int decode_sequence(struct xdr_stream *xdr,
|
|||
}
|
||||
/* highest slot id - currently not processed */
|
||||
dummy = be32_to_cpup(p++);
|
||||
/* target highest slot id - currently not processed */
|
||||
dummy = be32_to_cpup(p++);
|
||||
/* target highest slot id */
|
||||
res->sr_target_highest_slotid = be32_to_cpup(p++);
|
||||
/* result flags */
|
||||
res->sr_status_flags = be32_to_cpup(p);
|
||||
status = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue