mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-09 22:50:41 +00:00
nfsd: Add missing gen_confirm in nfsd4_setclientid()
Commit 294ac32e99 "nfsd: protect clid and verifier generation with client_lock" moved gen_confirm() to gen_clid(). After that commit, setclientid will return a bad reply with all-zero verifier after copy_clid(). Signed-off-by: Kinglong Mee <kinglongmee@gmail.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
19311aa835
commit
41eb16702c
@ -3049,10 +3049,11 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
|
||||
unconf = find_unconfirmed_client_by_name(&clname, nn);
|
||||
if (unconf)
|
||||
unhash_client_locked(unconf);
|
||||
if (conf && same_verf(&conf->cl_verifier, &clverifier))
|
||||
if (conf && same_verf(&conf->cl_verifier, &clverifier)) {
|
||||
/* case 1: probable callback update */
|
||||
copy_clid(new, conf);
|
||||
else /* case 4 (new client) or cases 2, 3 (client reboot): */
|
||||
gen_confirm(new, nn);
|
||||
} else /* case 4 (new client) or cases 2, 3 (client reboot): */
|
||||
gen_clid(new, nn);
|
||||
new->cl_minorversion = 0;
|
||||
gen_callback(new, setclid, rqstp);
|
||||
|
Loading…
x
Reference in New Issue
Block a user