diff options
Diffstat (limited to 'kernel/cred.c')
| -rw-r--r-- | kernel/cred.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/kernel/cred.c b/kernel/cred.c index 5557b55048df..8093c16b84b1 100644 --- a/kernel/cred.c +++ b/kernel/cred.c | |||
| @@ -54,6 +54,7 @@ struct cred init_cred = { | |||
| 54 | .cap_effective = CAP_INIT_EFF_SET, | 54 | .cap_effective = CAP_INIT_EFF_SET, |
| 55 | .cap_bset = CAP_INIT_BSET, | 55 | .cap_bset = CAP_INIT_BSET, |
| 56 | .user = INIT_USER, | 56 | .user = INIT_USER, |
| 57 | .user_ns = &init_user_ns, | ||
| 57 | .group_info = &init_groups, | 58 | .group_info = &init_groups, |
| 58 | #ifdef CONFIG_KEYS | 59 | #ifdef CONFIG_KEYS |
| 59 | .tgcred = &init_tgcred, | 60 | .tgcred = &init_tgcred, |
| @@ -410,6 +411,11 @@ int copy_creds(struct task_struct *p, unsigned long clone_flags) | |||
| 410 | goto error_put; | 411 | goto error_put; |
| 411 | } | 412 | } |
| 412 | 413 | ||
| 414 | /* cache user_ns in cred. Doesn't need a refcount because it will | ||
| 415 | * stay pinned by cred->user | ||
| 416 | */ | ||
| 417 | new->user_ns = new->user->user_ns; | ||
| 418 | |||
| 413 | #ifdef CONFIG_KEYS | 419 | #ifdef CONFIG_KEYS |
| 414 | /* new threads get their own thread keyrings if their parent already | 420 | /* new threads get their own thread keyrings if their parent already |
| 415 | * had one */ | 421 | * had one */ |
| @@ -741,12 +747,6 @@ int set_create_files_as(struct cred *new, struct inode *inode) | |||
| 741 | } | 747 | } |
| 742 | EXPORT_SYMBOL(set_create_files_as); | 748 | EXPORT_SYMBOL(set_create_files_as); |
| 743 | 749 | ||
| 744 | struct user_namespace *current_user_ns(void) | ||
| 745 | { | ||
| 746 | return _current_user_ns(); | ||
| 747 | } | ||
| 748 | EXPORT_SYMBOL(current_user_ns); | ||
| 749 | |||
| 750 | #ifdef CONFIG_DEBUG_CREDENTIALS | 750 | #ifdef CONFIG_DEBUG_CREDENTIALS |
| 751 | 751 | ||
| 752 | bool creds_are_invalid(const struct cred *cred) | 752 | bool creds_are_invalid(const struct cred *cred) |
