Skip to content

Commit

Permalink
nfsd: minor consolidation of mach_cred handling code
Browse files Browse the repository at this point in the history
Minor cleanup, no change in functionality.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
  • Loading branch information
J. Bruce Fields committed Nov 24, 2015
1 parent 5004385 commit 50c7b94
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions fs/nfsd/nfs4state.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand All @@ -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);
Expand Down Expand Up @@ -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);
Expand All @@ -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)
Expand Down

0 comments on commit 50c7b94

Please sign in to comment.