Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf5ed3e3 authored by J. Bruce Fields's avatar J. Bruce Fields
Browse files

nfsd: make client/ directory names small ints



We want clientid's on the wire to be randomized for reasons explained in
ebd7c72c "nfsd: randomize SETCLIENTID reply to help distinguish
servers".  But I'd rather have mostly small integers for the clients/
directory.

Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent e8a79fb1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -111,6 +111,7 @@ struct nfsd_net {
	 */
	unsigned int max_connections;

	u32 clientid_base;
	u32 clientid_counter;
	u32 clverifier_counter;

+1 −1
Original line number Diff line number Diff line
@@ -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;
+3 −2
Original line number Diff line number Diff line
@@ -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);