Lines Matching refs:cred
43 struct cred *cred = container_of(rcu, struct cred, rcu); in put_cred_rcu() local
45 kdebug("put_cred_rcu(%p)", cred); in put_cred_rcu()
47 if (atomic_long_read(&cred->usage) != 0) in put_cred_rcu()
49 cred, atomic_long_read(&cred->usage)); in put_cred_rcu()
51 security_cred_free(cred); in put_cred_rcu()
52 key_put(cred->session_keyring); in put_cred_rcu()
53 key_put(cred->process_keyring); in put_cred_rcu()
54 key_put(cred->thread_keyring); in put_cred_rcu()
55 key_put(cred->request_key_auth); in put_cred_rcu()
56 if (cred->group_info) in put_cred_rcu()
57 put_group_info(cred->group_info); in put_cred_rcu()
58 free_uid(cred->user); in put_cred_rcu()
59 if (cred->ucounts) in put_cred_rcu()
60 put_ucounts(cred->ucounts); in put_cred_rcu()
61 put_user_ns(cred->user_ns); in put_cred_rcu()
62 kmem_cache_free(cred_jar, cred); in put_cred_rcu()
71 void __put_cred(struct cred *cred) in __put_cred() argument
73 kdebug("__put_cred(%p{%ld})", cred, in __put_cred()
74 atomic_long_read(&cred->usage)); in __put_cred()
76 BUG_ON(atomic_long_read(&cred->usage) != 0); in __put_cred()
77 BUG_ON(cred == current->cred); in __put_cred()
78 BUG_ON(cred == current->real_cred); in __put_cred()
80 if (cred->non_rcu) in __put_cred()
81 put_cred_rcu(&cred->rcu); in __put_cred()
83 call_rcu(&cred->rcu, put_cred_rcu); in __put_cred()
92 struct cred *real_cred, *cred; in exit_creds() local
94 kdebug("exit_creds(%u,%p,%p,{%ld})", tsk->pid, tsk->real_cred, tsk->cred, in exit_creds()
95 atomic_long_read(&tsk->cred->usage)); in exit_creds()
97 real_cred = (struct cred *) tsk->real_cred; in exit_creds()
100 cred = (struct cred *) tsk->cred; in exit_creds()
101 tsk->cred = NULL; in exit_creds()
103 if (real_cred == cred) { in exit_creds()
104 put_cred_many(cred, 2); in exit_creds()
107 put_cred(cred); in exit_creds()
126 const struct cred *get_task_cred(struct task_struct *task) in get_task_cred()
128 const struct cred *cred; in get_task_cred() local
133 cred = __task_cred((task)); in get_task_cred()
134 BUG_ON(!cred); in get_task_cred()
135 } while (!get_cred_rcu(cred)); in get_task_cred()
138 return cred; in get_task_cred()
146 struct cred *cred_alloc_blank(void) in cred_alloc_blank()
148 struct cred *new; in cred_alloc_blank()
179 struct cred *prepare_creds(void) in prepare_creds()
182 const struct cred *old; in prepare_creds()
183 struct cred *new; in prepare_creds()
191 old = task->cred; in prepare_creds()
192 memcpy(new, old, sizeof(struct cred)); in prepare_creds()
230 struct cred *prepare_exec_creds(void) in prepare_exec_creds()
232 struct cred *new; in prepare_exec_creds()
265 struct cred *new; in copy_creds()
274 !p->cred->thread_keyring && in copy_creds()
278 p->real_cred = get_cred_many(p->cred, 2); in copy_creds()
280 p->cred, atomic_long_read(&p->cred->usage)); in copy_creds()
318 p->cred = p->real_cred = get_cred(new); in copy_creds()
329 static bool cred_cap_issubset(const struct cred *set, const struct cred *subset) in cred_cap_issubset()
368 int commit_creds(struct cred *new) in commit_creds()
371 const struct cred *old = task->real_cred; in commit_creds()
376 BUG_ON(task->cred != old); in commit_creds()
416 rcu_assign_pointer(task->cred, new); in commit_creds()
448 void abort_creds(struct cred *new) in abort_creds()
472 int cred_fscmp(const struct cred *a, const struct cred *b) in cred_fscmp()
512 int set_cred_ucounts(struct cred *new) in set_cred_ucounts()
538 cred_jar = KMEM_CACHE(cred, in cred_init()
558 struct cred *prepare_kernel_cred(struct task_struct *daemon) in prepare_kernel_cred()
560 const struct cred *old; in prepare_kernel_cred()
561 struct cred *new; in prepare_kernel_cred()
617 int set_security_override(struct cred *new, u32 secid) in set_security_override()
633 int set_security_override_from_ctx(struct cred *new, const char *secctx) in set_security_override_from_ctx()
655 int set_create_files_as(struct cred *new, struct inode *inode) in set_create_files_as()