Also do the same for gss_api operation tables.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
 struct rpc_cred {
        struct hlist_node       cr_hash;        /* hash chain */
        struct rpc_auth *       cr_auth;
-       struct rpc_credops *    cr_ops;
+       const struct rpc_credops *cr_ops;
        unsigned long           cr_expire;      /* when to gc */
        atomic_t                cr_count;       /* ref count */
        unsigned short          cr_flags;       /* various flags */
        unsigned int            au_verfsize;
 
        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
                                                 * differ from the flavor in
                                                 * au_ops->au_flavor in gss
                                                void *, __be32 *, void *);
 };
 
-extern struct rpc_authops      authunix_ops;
-extern struct rpc_authops      authnull_ops;
-#ifdef CONFIG_SUNRPC_SECURE
-extern struct rpc_authops      authdes_ops;
-#endif
+extern const struct rpc_authops        authunix_ops;
+extern const struct rpc_authops        authnull_ops;
 
-int                    rpcauth_register(struct rpc_authops *);
-int                    rpcauth_unregister(struct rpc_authops *);
+int                    rpcauth_register(const struct rpc_authops *);
+int                    rpcauth_unregister(const struct rpc_authops *);
 struct rpc_auth *      rpcauth_create(rpc_authflavor_t, struct rpc_clnt *);
 void                   rpcauth_release(struct rpc_auth *);
 struct rpc_cred *      rpcauth_lookup_credcache(struct rpc_auth *, struct auth_cred *, int);
 
        struct module           *gm_owner;
        struct xdr_netobj       gm_oid;
        char                    *gm_name;
-       struct gss_api_ops      *gm_ops;
+       const struct gss_api_ops *gm_ops;
        /* pseudoflavors supported by this mechanism: */
        int                     gm_pf_num;
        struct pf_desc *        gm_pfs;
 
 #endif
 
 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 */
        &authunix_ops,          /* AUTH_UNIX */
        NULL,                   /* others can be loadable modules */
 }
 
 int
-rpcauth_register(struct rpc_authops *ops)
+rpcauth_register(const struct rpc_authops *ops)
 {
        rpc_authflavor_t flavor;
        int ret = -EPERM;
 }
 
 int
-rpcauth_unregister(struct rpc_authops *ops)
+rpcauth_unregister(const struct rpc_authops *ops)
 {
        rpc_authflavor_t flavor;
        int ret = -EPERM;
 rpcauth_create(rpc_authflavor_t pseudoflavor, struct rpc_clnt *clnt)
 {
        struct rpc_auth         *auth;
-       struct rpc_authops      *ops;
+       const struct rpc_authops *ops;
        u32                     flavor = pseudoflavor_to_flavor(pseudoflavor);
 
        auth = ERR_PTR(-EINVAL);
 
 #include <linux/sunrpc/gss_api.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
 # define RPCDBG_FACILITY       RPCDBG_AUTH
        return status;
 }
 
-static struct rpc_authops authgss_ops = {
+static const struct rpc_authops authgss_ops = {
        .owner          = THIS_MODULE,
        .au_flavor      = RPC_AUTH_GSS,
 #ifdef RPC_DEBUG
        .crcreate       = gss_create_cred
 };
 
-static struct rpc_credops gss_credops = {
+static const struct rpc_credops gss_credops = {
        .cr_name        = "AUTH_GSS",
        .crdestroy      = gss_destroy_cred,
        .cr_init        = gss_cred_init,
 
        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_get_mic            = gss_get_mic_kerberos,
        .gss_verify_mic         = gss_verify_mic_kerberos,
 
        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_get_mic            = gss_get_mic_spkm3,
        .gss_verify_mic         = gss_verify_mic_spkm3,
 
        return p;
 }
 
-struct rpc_authops authnull_ops = {
+const struct rpc_authops authnull_ops = {
        .owner          = THIS_MODULE,
        .au_flavor      = RPC_AUTH_NULL,
 #ifdef RPC_DEBUG
 };
 
 static
-struct rpc_credops     null_credops = {
+const struct rpc_credops null_credops = {
        .cr_name        = "AUTH_NULL",
        .crdestroy      = nul_destroy_cred,
        .crmatch        = nul_match,
 
 
 static struct rpc_auth         unix_auth;
 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 *
 unx_create(struct rpc_clnt *clnt, rpc_authflavor_t flavor)
        return p;
 }
 
-struct rpc_authops     authunix_ops = {
+const struct rpc_authops authunix_ops = {
        .owner          = THIS_MODULE,
        .au_flavor      = RPC_AUTH_UNIX,
 #ifdef RPC_DEBUG
 };
 
 static
-struct rpc_credops     unix_credops = {
+const struct rpc_credops unix_credops = {
        .cr_name        = "AUTH_UNIX",
        .crdestroy      = unx_destroy_cred,
        .crmatch        = unx_match,