nfsd: Fix session slot freeing for NFSv4.1/4.2
Without this patch the NFSv4.1/4.2 server erroneously always frees session slot zero for callbacks. This only affects 4.1/4.2 mounts if the server has delegations enabled or is a pNFS configuration. Even for those cases, the effect is mainly to only use slot 0 for callbacks, serializing all of them. There is a slight chance that callbacks will fail if the client performs them in a different order than received on the TCP connection. If this bug affects your server, you will see console messages like: newnfs_request: Bad session slot This patch fixes the problem. Found during a recent IETF NFSv4 testing event. PR: 263728 MFC after: 2 weeks
This commit is contained in:
parent
729ee78911
commit
271f6d52a6
@ -6646,6 +6646,8 @@ nfsv4_setcbsequence(struct nfsrv_descript *nd, struct nfsclient *clp,
|
||||
bcopy(sessionid, tl, NFSX_V4SESSIONID);
|
||||
tl += NFSX_V4SESSIONID / NFSX_UNSIGNED;
|
||||
nd->nd_slotseq = tl;
|
||||
nd->nd_slotid = *slotposp;
|
||||
nd->nd_flag |= ND_HASSLOTID;
|
||||
*tl++ = txdr_unsigned(slotseq);
|
||||
*tl++ = txdr_unsigned(*slotposp);
|
||||
*tl++ = txdr_unsigned(maxslot);
|
||||
|
Loading…
Reference in New Issue
Block a user