Loading fs/nfsd/nfs4state.c +10 −7 Original line number Diff line number Diff line Loading @@ -2375,10 +2375,17 @@ nfsd4_exchange_id(struct svc_rqst *rqstp, if (exid->flags & ~EXCHGID4_FLAG_MASK_A) return nfserr_inval; new = create_client(exid->clname, rqstp, &verf); if (new == NULL) return nfserr_jukebox; switch (exid->spa_how) { case SP4_MACH_CRED: if (!svc_rqst_integrity_protected(rqstp)) return nfserr_inval; if (!svc_rqst_integrity_protected(rqstp)) { status = nfserr_inval; goto out_nolock; } new->cl_mach_cred = true; case SP4_NONE: break; default: /* checked by xdr code */ Loading @@ -2387,10 +2394,6 @@ nfsd4_exchange_id(struct svc_rqst *rqstp, return nfserr_encr_alg_unsupp; } new = create_client(exid->clname, rqstp, &verf); if (new == NULL) return nfserr_jukebox; /* Cases below refer to rfc 5661 section 18.35.4: */ spin_lock(&nn->client_lock); conf = find_confirmed_client_by_name(&exid->clname, nn); Loading Loading @@ -2452,7 +2455,6 @@ nfsd4_exchange_id(struct svc_rqst *rqstp, goto out; } new->cl_minorversion = cstate->minorversion; new->cl_mach_cred = (exid->spa_how == SP4_MACH_CRED); gen_clid(new, nn); add_to_unconfirmed(new); Loading @@ -2470,6 +2472,7 @@ nfsd4_exchange_id(struct svc_rqst *rqstp, out: spin_unlock(&nn->client_lock); out_nolock: if (new) expire_client(new); if (unconf) Loading Loading
fs/nfsd/nfs4state.c +10 −7 Original line number Diff line number Diff line Loading @@ -2375,10 +2375,17 @@ nfsd4_exchange_id(struct svc_rqst *rqstp, if (exid->flags & ~EXCHGID4_FLAG_MASK_A) return nfserr_inval; new = create_client(exid->clname, rqstp, &verf); if (new == NULL) return nfserr_jukebox; switch (exid->spa_how) { case SP4_MACH_CRED: if (!svc_rqst_integrity_protected(rqstp)) return nfserr_inval; if (!svc_rqst_integrity_protected(rqstp)) { status = nfserr_inval; goto out_nolock; } new->cl_mach_cred = true; case SP4_NONE: break; default: /* checked by xdr code */ Loading @@ -2387,10 +2394,6 @@ nfsd4_exchange_id(struct svc_rqst *rqstp, return nfserr_encr_alg_unsupp; } new = create_client(exid->clname, rqstp, &verf); if (new == NULL) return nfserr_jukebox; /* Cases below refer to rfc 5661 section 18.35.4: */ spin_lock(&nn->client_lock); conf = find_confirmed_client_by_name(&exid->clname, nn); Loading Loading @@ -2452,7 +2455,6 @@ nfsd4_exchange_id(struct svc_rqst *rqstp, goto out; } new->cl_minorversion = cstate->minorversion; new->cl_mach_cred = (exid->spa_how == SP4_MACH_CRED); gen_clid(new, nn); add_to_unconfirmed(new); Loading @@ -2470,6 +2472,7 @@ nfsd4_exchange_id(struct svc_rqst *rqstp, out: spin_unlock(&nn->client_lock); out_nolock: if (new) expire_client(new); if (unconf) Loading