Commit fe980f94 authored by Trond Myklebust's avatar Trond Myklebust

RPC: Unify AUTH_NULL credentials

 There is only one AUTH_NULL "credential".
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent a00dd564
......@@ -18,32 +18,20 @@
# define RPCDBG_FACILITY RPCDBG_AUTH
#endif
static struct rpc_credops null_credops;
static struct rpc_auth null_auth;
static struct rpc_cred null_cred;
static struct rpc_auth *
nul_create(struct rpc_clnt *clnt, rpc_authflavor_t flavor)
{
struct rpc_auth *auth;
dprintk("RPC: creating NULL authenticator for client %p\n", clnt);
if (!(auth = (struct rpc_auth *) kmalloc(sizeof(*auth),GFP_KERNEL)))
return NULL;
auth->au_cslack = 4;
auth->au_rslack = 2;
auth->au_ops = &authnull_ops;
auth->au_expire = 1800 * HZ;
atomic_set(&auth->au_count, 1);
rpcauth_init_credcache(auth);
return (struct rpc_auth *) auth;
atomic_inc(&null_auth.au_count);
return &null_auth;
}
static void
nul_destroy(struct rpc_auth *auth)
{
dprintk("RPC: destroying NULL authenticator %p\n", auth);
rpcauth_free_credcache(auth);
kfree(auth);
atomic_dec(&null_auth.au_count);
}
/*
......@@ -52,25 +40,7 @@ nul_destroy(struct rpc_auth *auth)
static struct rpc_cred *
nul_lookup_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags)
{
return rpcauth_lookup_credcache(auth, acred, flags);
}
/*
* Create NULL creds for current process
*/
static struct rpc_cred *
nul_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags)
{
struct rpc_cred *cred;
if (!(cred = (struct rpc_cred *) kmalloc(sizeof(*cred),GFP_KERNEL)))
return NULL;
atomic_set(&cred->cr_count, 1);
cred->cr_flags = RPCAUTH_CRED_UPTODATE;
cred->cr_uid = acred->uid;
cred->cr_ops = &null_credops;
return cred;
return get_rpccred(&null_cred);
}
/*
......@@ -79,7 +49,6 @@ nul_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags)
static void
nul_destroy_cred(struct rpc_cred *cred)
{
kfree(cred);
}
/*
......@@ -136,7 +105,7 @@ nul_validate(struct rpc_task *task, u32 *p)
return p;
}
struct rpc_authops authnull_ops = {
struct rpc_authops authnull_ops = {
.owner = THIS_MODULE,
.au_flavor = RPC_AUTH_NULL,
#ifdef RPC_DEBUG
......@@ -145,7 +114,13 @@ struct rpc_authops authnull_ops = {
.create = nul_create,
.destroy = nul_destroy,
.lookup_cred = nul_lookup_cred,
.crcreate = nul_create_cred,
};
static
struct rpc_auth null_auth = {
.au_cslack = 4,
.au_rslack = 2,
.au_ops = &authnull_ops,
};
static
......@@ -157,3 +132,13 @@ struct rpc_credops null_credops = {
.crrefresh = nul_refresh,
.crvalidate = nul_validate,
};
static
struct rpc_cred null_cred = {
.cr_ops = &null_credops,
.cr_count = ATOMIC_INIT(1),
.cr_flags = RPCAUTH_CRED_UPTODATE,
#ifdef RPC_DEBUG
.cr_magic = RPCAUTH_CRED_MAGIC,
#endif
};
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment