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;
|
unsigned int max_connections;
|
||||||
|
|
||||||
|
u32 clientid_base;
|
||||||
u32 clientid_counter;
|
u32 clientid_counter;
|
||||||
u32 clverifier_counter;
|
u32 clverifier_counter;
|
||||||
|
|
||||||
|
@ -2242,7 +2242,7 @@ static struct nfs4_client *create_client(struct xdr_netobj name,
|
|||||||
clp->cl_cb_session = NULL;
|
clp->cl_cb_session = NULL;
|
||||||
clp->net = net;
|
clp->net = net;
|
||||||
clp->cl_nfsd_dentry = nfsd_client_mkdir(nn, &clp->cl_nfsdfs,
|
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) {
|
if (!clp->cl_nfsd_dentry) {
|
||||||
free_client(clp);
|
free_client(clp);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -1213,7 +1213,7 @@ struct dentry *nfsd_client_mkdir(struct nfsd_net *nn, struct nfsdfs_client *ncl,
|
|||||||
{
|
{
|
||||||
char name[11];
|
char name[11];
|
||||||
|
|
||||||
sprintf(name, "%d", id++);
|
sprintf(name, "%u", id);
|
||||||
|
|
||||||
return nfsd_mkdir(nn->nfsd_client_dir, ncl, name);
|
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->somebody_reclaimed = false;
|
||||||
nn->track_reclaim_completes = false;
|
nn->track_reclaim_completes = false;
|
||||||
nn->clverifier_counter = prandom_u32();
|
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++;
|
nn->s2s_cp_cl_id = nn->clientid_counter++;
|
||||||
|
|
||||||
atomic_set(&nn->ntf_refcnt, 0);
|
atomic_set(&nn->ntf_refcnt, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user