[PATCH] knfsd: nfsd4: fix uncomfirmed list
Setclientid code assumes there is only one match in unconfirmed list. Make sure that assumption holds. From: Fred Isaman Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
fd39ca9a80
commit
31f4a6c127
@@ -743,10 +743,13 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_setclientid *setclid)
|
|||||||
* nfs4_client, but with the new callback info and a
|
* nfs4_client, but with the new callback info and a
|
||||||
* new cl_confirm
|
* new cl_confirm
|
||||||
*/
|
*/
|
||||||
if ((unconf) &&
|
if (unconf) {
|
||||||
cmp_verf(&unconf->cl_verifier, &conf->cl_verifier) &&
|
/* Note this is removing unconfirmed {*x***},
|
||||||
cmp_clid(&unconf->cl_clientid, &conf->cl_clientid)) {
|
* which is stronger than RFC recommended {vxc**}.
|
||||||
expire_client(unconf);
|
* This has the advantage that there is at most
|
||||||
|
* one {*x***} in either list at any time.
|
||||||
|
*/
|
||||||
|
expire_client(unconf);
|
||||||
}
|
}
|
||||||
new = create_client(clname, dname);
|
new = create_client(clname, dname);
|
||||||
if (new == NULL)
|
if (new == NULL)
|
||||||
|
Reference in New Issue
Block a user