Lines Matching refs:cred
68 struct unx_cred *cred;
71 dprintk("RPC: allocating UNIX cred for uid %d gid %d\n",
74 if (!(cred = kmalloc(sizeof(*cred), GFP_KERNEL)))
77 atomic_set(&cred->uc_count, 1);
78 cred->uc_flags = RPCAUTH_CRED_UPTODATE;
80 cred->uc_uid = 0;
81 cred->uc_gid = 0;
82 cred->uc_gids[0] = NOGROUP;
88 cred->uc_uid = acred->uid;
89 cred->uc_gid = acred->gid;
91 cred->uc_gids[i] = GROUP_AT(acred->group_info, i);
93 cred->uc_gids[i] = NOGROUP;
95 cred->uc_base.cr_ops = &unix_credops;
97 return (struct rpc_cred *) cred;
101 unx_destroy_cred(struct rpc_cred *cred)
103 kfree(cred);
114 struct unx_cred *cred = (struct unx_cred *) rcred;
120 if (cred->uc_uid != acred->uid
121 || cred->uc_gid != acred->gid)
128 if (cred->uc_gids[i] != GROUP_AT(acred->group_info, i))
132 return (cred->uc_uid == 0
133 && cred->uc_gid == 0
134 && cred->uc_gids[0] == (gid_t) NOGROUP);
145 struct unx_cred *cred = (struct unx_cred *) task->tk_msg.rpc_cred;
158 *p++ = htonl((u32) cred->uc_uid);
159 *p++ = htonl((u32) cred->uc_gid);
161 for (i = 0; i < 16 && cred->uc_gids[i] != (gid_t) NOGROUP; i++)
162 *p++ = htonl((u32) cred->uc_gids[i]);
164 *base = htonl((p - base - 1) << 2); /* cred length */