提交 f1c0a861 编写于 作者: T Trond Myklebust

SUNRPC: Mark auth and cred operation tables as constant.

Also do the same for gss_api operation tables.
Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
上级 de7a8ce3
...@@ -35,7 +35,7 @@ struct rpc_credops; ...@@ -35,7 +35,7 @@ struct rpc_credops;
struct rpc_cred { struct rpc_cred {
struct hlist_node cr_hash; /* hash chain */ struct hlist_node cr_hash; /* hash chain */
struct rpc_auth * cr_auth; struct rpc_auth * cr_auth;
struct rpc_credops * cr_ops; const struct rpc_credops *cr_ops;
unsigned long cr_expire; /* when to gc */ unsigned long cr_expire; /* when to gc */
atomic_t cr_count; /* ref count */ atomic_t cr_count; /* ref count */
unsigned short cr_flags; /* various flags */ unsigned short cr_flags; /* various flags */
...@@ -73,7 +73,7 @@ struct rpc_auth { ...@@ -73,7 +73,7 @@ struct rpc_auth {
unsigned int au_verfsize; unsigned int au_verfsize;
unsigned int au_flags; /* various flags */ unsigned int au_flags; /* various flags */
struct rpc_authops * au_ops; /* operations */ const struct rpc_authops *au_ops; /* operations */
rpc_authflavor_t au_flavor; /* pseudoflavor (note may rpc_authflavor_t au_flavor; /* pseudoflavor (note may
* differ from the flavor in * differ from the flavor in
* au_ops->au_flavor in gss * au_ops->au_flavor in gss
...@@ -119,14 +119,11 @@ struct rpc_credops { ...@@ -119,14 +119,11 @@ struct rpc_credops {
void *, __be32 *, void *); void *, __be32 *, void *);
}; };
extern struct rpc_authops authunix_ops; extern const struct rpc_authops authunix_ops;
extern struct rpc_authops authnull_ops; extern const struct rpc_authops authnull_ops;
#ifdef CONFIG_SUNRPC_SECURE
extern struct rpc_authops authdes_ops;
#endif
int rpcauth_register(struct rpc_authops *); int rpcauth_register(const struct rpc_authops *);
int rpcauth_unregister(struct rpc_authops *); int rpcauth_unregister(const struct rpc_authops *);
struct rpc_auth * rpcauth_create(rpc_authflavor_t, struct rpc_clnt *); struct rpc_auth * rpcauth_create(rpc_authflavor_t, struct rpc_clnt *);
void rpcauth_release(struct rpc_auth *); void rpcauth_release(struct rpc_auth *);
struct rpc_cred * rpcauth_lookup_credcache(struct rpc_auth *, struct auth_cred *, int); struct rpc_cred * rpcauth_lookup_credcache(struct rpc_auth *, struct auth_cred *, int);
......
...@@ -77,7 +77,7 @@ struct gss_api_mech { ...@@ -77,7 +77,7 @@ struct gss_api_mech {
struct module *gm_owner; struct module *gm_owner;
struct xdr_netobj gm_oid; struct xdr_netobj gm_oid;
char *gm_name; char *gm_name;
struct gss_api_ops *gm_ops; const struct gss_api_ops *gm_ops;
/* pseudoflavors supported by this mechanism: */ /* pseudoflavors supported by this mechanism: */
int gm_pf_num; int gm_pf_num;
struct pf_desc * gm_pfs; struct pf_desc * gm_pfs;
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#endif #endif
static DEFINE_SPINLOCK(rpc_authflavor_lock); static DEFINE_SPINLOCK(rpc_authflavor_lock);
static struct rpc_authops * auth_flavors[RPC_AUTH_MAXFLAVOR] = { static const struct rpc_authops *auth_flavors[RPC_AUTH_MAXFLAVOR] = {
&authnull_ops, /* AUTH_NULL */ &authnull_ops, /* AUTH_NULL */
&authunix_ops, /* AUTH_UNIX */ &authunix_ops, /* AUTH_UNIX */
NULL, /* others can be loadable modules */ NULL, /* others can be loadable modules */
...@@ -33,7 +33,7 @@ pseudoflavor_to_flavor(u32 flavor) { ...@@ -33,7 +33,7 @@ pseudoflavor_to_flavor(u32 flavor) {
} }
int int
rpcauth_register(struct rpc_authops *ops) rpcauth_register(const struct rpc_authops *ops)
{ {
rpc_authflavor_t flavor; rpc_authflavor_t flavor;
int ret = -EPERM; int ret = -EPERM;
...@@ -50,7 +50,7 @@ rpcauth_register(struct rpc_authops *ops) ...@@ -50,7 +50,7 @@ rpcauth_register(struct rpc_authops *ops)
} }
int int
rpcauth_unregister(struct rpc_authops *ops) rpcauth_unregister(const struct rpc_authops *ops)
{ {
rpc_authflavor_t flavor; rpc_authflavor_t flavor;
int ret = -EPERM; int ret = -EPERM;
...@@ -70,7 +70,7 @@ struct rpc_auth * ...@@ -70,7 +70,7 @@ struct rpc_auth *
rpcauth_create(rpc_authflavor_t pseudoflavor, struct rpc_clnt *clnt) rpcauth_create(rpc_authflavor_t pseudoflavor, struct rpc_clnt *clnt)
{ {
struct rpc_auth *auth; struct rpc_auth *auth;
struct rpc_authops *ops; const struct rpc_authops *ops;
u32 flavor = pseudoflavor_to_flavor(pseudoflavor); u32 flavor = pseudoflavor_to_flavor(pseudoflavor);
auth = ERR_PTR(-EINVAL); auth = ERR_PTR(-EINVAL);
......
...@@ -54,9 +54,9 @@ ...@@ -54,9 +54,9 @@
#include <linux/sunrpc/gss_api.h> #include <linux/sunrpc/gss_api.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
static struct rpc_authops authgss_ops; static const struct rpc_authops authgss_ops;
static struct rpc_credops gss_credops; static const struct rpc_credops gss_credops;
#ifdef RPC_DEBUG #ifdef RPC_DEBUG
# define RPCDBG_FACILITY RPCDBG_AUTH # define RPCDBG_FACILITY RPCDBG_AUTH
...@@ -1193,7 +1193,7 @@ gss_unwrap_resp(struct rpc_task *task, ...@@ -1193,7 +1193,7 @@ gss_unwrap_resp(struct rpc_task *task,
return status; return status;
} }
static struct rpc_authops authgss_ops = { static const struct rpc_authops authgss_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.au_flavor = RPC_AUTH_GSS, .au_flavor = RPC_AUTH_GSS,
#ifdef RPC_DEBUG #ifdef RPC_DEBUG
...@@ -1205,7 +1205,7 @@ static struct rpc_authops authgss_ops = { ...@@ -1205,7 +1205,7 @@ static struct rpc_authops authgss_ops = {
.crcreate = gss_create_cred .crcreate = gss_create_cred
}; };
static struct rpc_credops gss_credops = { static const struct rpc_credops gss_credops = {
.cr_name = "AUTH_GSS", .cr_name = "AUTH_GSS",
.crdestroy = gss_destroy_cred, .crdestroy = gss_destroy_cred,
.cr_init = gss_cred_init, .cr_init = gss_cred_init,
......
...@@ -201,7 +201,7 @@ gss_delete_sec_context_kerberos(void *internal_ctx) { ...@@ -201,7 +201,7 @@ gss_delete_sec_context_kerberos(void *internal_ctx) {
kfree(kctx); kfree(kctx);
} }
static struct gss_api_ops gss_kerberos_ops = { static const struct gss_api_ops gss_kerberos_ops = {
.gss_import_sec_context = gss_import_sec_context_kerberos, .gss_import_sec_context = gss_import_sec_context_kerberos,
.gss_get_mic = gss_get_mic_kerberos, .gss_get_mic = gss_get_mic_kerberos,
.gss_verify_mic = gss_verify_mic_kerberos, .gss_verify_mic = gss_verify_mic_kerberos,
......
...@@ -202,7 +202,7 @@ gss_get_mic_spkm3(struct gss_ctx *ctx, ...@@ -202,7 +202,7 @@ gss_get_mic_spkm3(struct gss_ctx *ctx,
return err; return err;
} }
static struct gss_api_ops gss_spkm3_ops = { static const struct gss_api_ops gss_spkm3_ops = {
.gss_import_sec_context = gss_import_sec_context_spkm3, .gss_import_sec_context = gss_import_sec_context_spkm3,
.gss_get_mic = gss_get_mic_spkm3, .gss_get_mic = gss_get_mic_spkm3,
.gss_verify_mic = gss_verify_mic_spkm3, .gss_verify_mic = gss_verify_mic_spkm3,
......
...@@ -101,7 +101,7 @@ nul_validate(struct rpc_task *task, __be32 *p) ...@@ -101,7 +101,7 @@ nul_validate(struct rpc_task *task, __be32 *p)
return p; return p;
} }
struct rpc_authops authnull_ops = { const struct rpc_authops authnull_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.au_flavor = RPC_AUTH_NULL, .au_flavor = RPC_AUTH_NULL,
#ifdef RPC_DEBUG #ifdef RPC_DEBUG
...@@ -122,7 +122,7 @@ struct rpc_auth null_auth = { ...@@ -122,7 +122,7 @@ struct rpc_auth null_auth = {
}; };
static static
struct rpc_credops null_credops = { const struct rpc_credops null_credops = {
.cr_name = "AUTH_NULL", .cr_name = "AUTH_NULL",
.crdestroy = nul_destroy_cred, .crdestroy = nul_destroy_cred,
.crmatch = nul_match, .crmatch = nul_match,
......
...@@ -34,7 +34,7 @@ struct unx_cred { ...@@ -34,7 +34,7 @@ struct unx_cred {
static struct rpc_auth unix_auth; static struct rpc_auth unix_auth;
static struct rpc_cred_cache unix_cred_cache; static struct rpc_cred_cache unix_cred_cache;
static struct rpc_credops unix_credops; static const struct rpc_credops unix_credops;
static struct rpc_auth * static struct rpc_auth *
unx_create(struct rpc_clnt *clnt, rpc_authflavor_t flavor) unx_create(struct rpc_clnt *clnt, rpc_authflavor_t flavor)
...@@ -205,7 +205,7 @@ unx_validate(struct rpc_task *task, __be32 *p) ...@@ -205,7 +205,7 @@ unx_validate(struct rpc_task *task, __be32 *p)
return p; return p;
} }
struct rpc_authops authunix_ops = { const struct rpc_authops authunix_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.au_flavor = RPC_AUTH_UNIX, .au_flavor = RPC_AUTH_UNIX,
#ifdef RPC_DEBUG #ifdef RPC_DEBUG
...@@ -233,7 +233,7 @@ struct rpc_auth unix_auth = { ...@@ -233,7 +233,7 @@ struct rpc_auth unix_auth = {
}; };
static static
struct rpc_credops unix_credops = { const struct rpc_credops unix_credops = {
.cr_name = "AUTH_UNIX", .cr_name = "AUTH_UNIX",
.crdestroy = unx_destroy_cred, .crdestroy = unx_destroy_cred,
.crmatch = unx_match, .crmatch = unx_match,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册