OSDN Git Service

SUNRPC discard cr_uid from struct rpc_cred.
authorNeilBrown <neilb@suse.com>
Mon, 3 Dec 2018 00:30:31 +0000 (11:30 +1100)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Wed, 19 Dec 2018 18:52:46 +0000 (13:52 -0500)
Just use ->cr_cred->fsuid directly.

Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
include/linux/sunrpc/auth.h
net/sunrpc/auth.c
net/sunrpc/auth_gss/auth_gss.c

index 5486082..eed3cb1 100644 (file)
@@ -58,8 +58,6 @@ struct rpc_cred {
        refcount_t              cr_count;       /* ref count */
        const struct cred       *cr_cred;
 
-       kuid_t                  cr_uid;
-
        /* per-flavor data */
 };
 #define RPCAUTH_CRED_NEW       0
index a07a7c5..1ff9768 100644 (file)
@@ -655,7 +655,6 @@ rpcauth_init_cred(struct rpc_cred *cred, const struct auth_cred *acred,
        cred->cr_ops = ops;
        cred->cr_expire = jiffies;
        cred->cr_cred = get_cred(acred->cred);
-       cred->cr_uid = acred->cred->fsuid;
 }
 EXPORT_SYMBOL_GPL(rpcauth_init_cred);
 
index 4e1a2eb..dc86713 100644 (file)
@@ -565,7 +565,7 @@ gss_setup_upcall(struct gss_auth *gss_auth, struct rpc_cred *cred)
        struct gss_cred *gss_cred = container_of(cred,
                        struct gss_cred, gc_base);
        struct gss_upcall_msg *gss_new, *gss_msg;
-       kuid_t uid = cred->cr_uid;
+       kuid_t uid = cred->cr_cred->fsuid;
 
        gss_new = gss_alloc_msg(gss_auth, uid, gss_cred->gc_principal);
        if (IS_ERR(gss_new))
@@ -604,7 +604,7 @@ gss_refresh_upcall(struct rpc_task *task)
        int err = 0;
 
        dprintk("RPC: %5u %s for uid %u\n",
-               task->tk_pid, __func__, from_kuid(&init_user_ns, cred->cr_uid));
+               task->tk_pid, __func__, from_kuid(&init_user_ns, cred->cr_cred->fsuid));
        gss_msg = gss_setup_upcall(gss_auth, cred);
        if (PTR_ERR(gss_msg) == -EAGAIN) {
                /* XXX: warning on the first, under the assumption we
@@ -637,7 +637,7 @@ gss_refresh_upcall(struct rpc_task *task)
 out:
        dprintk("RPC: %5u %s for uid %u result %d\n",
                task->tk_pid, __func__,
-               from_kuid(&init_user_ns, cred->cr_uid), err);
+               from_kuid(&init_user_ns, cred->cr_cred->fsuid), err);
        return err;
 }
 
@@ -653,7 +653,7 @@ gss_create_upcall(struct gss_auth *gss_auth, struct gss_cred *gss_cred)
        int err;
 
        dprintk("RPC:       %s for uid %u\n",
-               __func__, from_kuid(&init_user_ns, cred->cr_uid));
+               __func__, from_kuid(&init_user_ns, cred->cr_cred->fsuid));
 retry:
        err = 0;
        /* if gssd is down, just skip upcalling altogether */
@@ -701,7 +701,7 @@ out_intr:
        gss_release_msg(gss_msg);
 out:
        dprintk("RPC:       %s for uid %u result %d\n",
-               __func__, from_kuid(&init_user_ns, cred->cr_uid), err);
+               __func__, from_kuid(&init_user_ns, cred->cr_cred->fsuid), err);
        return err;
 }
 
@@ -1520,7 +1520,7 @@ out:
        } else {
                if (gss_cred->gc_principal != NULL)
                        return 0;
-               ret = uid_eq(rc->cr_uid, acred->cred->fsuid);
+               ret = uid_eq(rc->cr_cred->fsuid, acred->cred->fsuid);
        }
        return ret;
 }