nfsd: make client/ directory names small ints
We want clientid's on the wire to be randomized for reasons explained in
ebd7c72c63 "nfsd: randomize SETCLIENTID reply to help distinguish
servers".  But I'd rather have mostly small integers for the clients/
directory.
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
			
			
This commit is contained in:
		
							parent
							
								
									e8a79fb14f
								
							
						
					
					
						commit
						bf5ed3e3bb
					
				| @ -111,6 +111,7 @@ struct nfsd_net { | ||||
| 	 */ | ||||
| 	unsigned int max_connections; | ||||
| 
 | ||||
| 	u32 clientid_base; | ||||
| 	u32 clientid_counter; | ||||
| 	u32 clverifier_counter; | ||||
| 
 | ||||
|  | ||||
| @ -2242,7 +2242,7 @@ static struct nfs4_client *create_client(struct xdr_netobj name, | ||||
| 	clp->cl_cb_session = NULL; | ||||
| 	clp->net = net; | ||||
| 	clp->cl_nfsd_dentry = nfsd_client_mkdir(nn, &clp->cl_nfsdfs, | ||||
| 						clp->cl_clientid.cl_id); | ||||
| 			clp->cl_clientid.cl_id - nn->clientid_base); | ||||
| 	if (!clp->cl_nfsd_dentry) { | ||||
| 		free_client(clp); | ||||
| 		return NULL; | ||||
|  | ||||
| @ -1213,7 +1213,7 @@ struct dentry *nfsd_client_mkdir(struct nfsd_net *nn, struct nfsdfs_client *ncl, | ||||
| { | ||||
| 	char name[11]; | ||||
| 
 | ||||
| 	sprintf(name, "%d", id++); | ||||
| 	sprintf(name, "%u", id); | ||||
| 
 | ||||
| 	return nfsd_mkdir(nn->nfsd_client_dir, ncl, name); | ||||
| } | ||||
| @ -1352,7 +1352,8 @@ static __net_init int nfsd_init_net(struct net *net) | ||||
| 	nn->somebody_reclaimed = false; | ||||
| 	nn->track_reclaim_completes = false; | ||||
| 	nn->clverifier_counter = prandom_u32(); | ||||
| 	nn->clientid_counter = prandom_u32(); | ||||
| 	nn->clientid_base = prandom_u32(); | ||||
| 	nn->clientid_counter = nn->clientid_base + 1; | ||||
| 	nn->s2s_cp_cl_id = nn->clientid_counter++; | ||||
| 
 | ||||
| 	atomic_set(&nn->ntf_refcnt, 0); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user