mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	nfsd: minor consolidation of mach_cred handling code
Minor cleanup, no change in functionality. Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
		
							parent
							
								
									5004385932
								
							
						
					
					
						commit
						50c7b948ad
					
				
					 1 changed files with 10 additions and 7 deletions
				
			
		| 
						 | 
					@ -2375,10 +2375,17 @@ nfsd4_exchange_id(struct svc_rqst *rqstp,
 | 
				
			||||||
	if (exid->flags & ~EXCHGID4_FLAG_MASK_A)
 | 
						if (exid->flags & ~EXCHGID4_FLAG_MASK_A)
 | 
				
			||||||
		return nfserr_inval;
 | 
							return nfserr_inval;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						new = create_client(exid->clname, rqstp, &verf);
 | 
				
			||||||
 | 
						if (new == NULL)
 | 
				
			||||||
 | 
							return nfserr_jukebox;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	switch (exid->spa_how) {
 | 
						switch (exid->spa_how) {
 | 
				
			||||||
	case SP4_MACH_CRED:
 | 
						case SP4_MACH_CRED:
 | 
				
			||||||
		if (!svc_rqst_integrity_protected(rqstp))
 | 
							if (!svc_rqst_integrity_protected(rqstp)) {
 | 
				
			||||||
			return nfserr_inval;
 | 
								status = nfserr_inval;
 | 
				
			||||||
 | 
								goto out_nolock;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							new->cl_mach_cred = true;
 | 
				
			||||||
	case SP4_NONE:
 | 
						case SP4_NONE:
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	default:				/* checked by xdr code */
 | 
						default:				/* checked by xdr code */
 | 
				
			||||||
| 
						 | 
					@ -2387,10 +2394,6 @@ nfsd4_exchange_id(struct svc_rqst *rqstp,
 | 
				
			||||||
		return nfserr_encr_alg_unsupp;
 | 
							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: */
 | 
						/* Cases below refer to rfc 5661 section 18.35.4: */
 | 
				
			||||||
	spin_lock(&nn->client_lock);
 | 
						spin_lock(&nn->client_lock);
 | 
				
			||||||
	conf = find_confirmed_client_by_name(&exid->clname, nn);
 | 
						conf = find_confirmed_client_by_name(&exid->clname, nn);
 | 
				
			||||||
| 
						 | 
					@ -2452,7 +2455,6 @@ nfsd4_exchange_id(struct svc_rqst *rqstp,
 | 
				
			||||||
			goto out;
 | 
								goto out;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	new->cl_minorversion = cstate->minorversion;
 | 
						new->cl_minorversion = cstate->minorversion;
 | 
				
			||||||
	new->cl_mach_cred = (exid->spa_how == SP4_MACH_CRED);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	gen_clid(new, nn);
 | 
						gen_clid(new, nn);
 | 
				
			||||||
	add_to_unconfirmed(new);
 | 
						add_to_unconfirmed(new);
 | 
				
			||||||
| 
						 | 
					@ -2470,6 +2472,7 @@ nfsd4_exchange_id(struct svc_rqst *rqstp,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
out:
 | 
					out:
 | 
				
			||||||
	spin_unlock(&nn->client_lock);
 | 
						spin_unlock(&nn->client_lock);
 | 
				
			||||||
 | 
					out_nolock:
 | 
				
			||||||
	if (new)
 | 
						if (new)
 | 
				
			||||||
		expire_client(new);
 | 
							expire_client(new);
 | 
				
			||||||
	if (unconf)
 | 
						if (unconf)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue