Symbol: nsset
fs/namespace.c
6425
static int mntns_install(struct nsset *nsset, struct ns_common *ns)
fs/namespace.c
6427
struct nsproxy *nsproxy = nsset->nsproxy;
fs/namespace.c
6428
struct fs_struct *fs = nsset->fs;
fs/namespace.c
6430
struct user_namespace *user_ns = nsset->cred->user_ns;
include/linux/nsproxy.h
61
static inline struct cred *nsset_cred(struct nsset *set)
include/linux/proc_ns.h
12
struct nsset;
include/linux/proc_ns.h
22
int (*install)(struct nsset *nsset, struct ns_common *ns);
ipc/namespace.c
233
static int ipcns_install(struct nsset *nsset, struct ns_common *new)
ipc/namespace.c
235
struct nsproxy *nsproxy = nsset->nsproxy;
ipc/namespace.c
238
!ns_capable(nsset->cred->user_ns, CAP_SYS_ADMIN))
kernel/cgroup/namespace.c
92
static int cgroupns_install(struct nsset *nsset, struct ns_common *ns)
kernel/cgroup/namespace.c
94
struct nsproxy *nsproxy = nsset->nsproxy;
kernel/cgroup/namespace.c
97
if (!ns_capable(nsset->cred->user_ns, CAP_SYS_ADMIN) ||
kernel/nsproxy.c
332
static void put_nsset(struct nsset *nsset)
kernel/nsproxy.c
334
unsigned flags = nsset->flags;
kernel/nsproxy.c
337
put_cred(nsset_cred(nsset));
kernel/nsproxy.c
342
if (nsset->fs && (flags & CLONE_NEWNS) && (flags & ~CLONE_NEWNS))
kernel/nsproxy.c
343
free_fs_struct(nsset->fs);
kernel/nsproxy.c
344
if (nsset->nsproxy)
kernel/nsproxy.c
345
nsproxy_free(nsset->nsproxy);
kernel/nsproxy.c
348
static int prepare_nsset(unsigned flags, struct nsset *nsset)
kernel/nsproxy.c
352
nsset->nsproxy = create_new_namespaces(0, me, current_user_ns(), me->fs);
kernel/nsproxy.c
353
if (IS_ERR(nsset->nsproxy))
kernel/nsproxy.c
354
return PTR_ERR(nsset->nsproxy);
kernel/nsproxy.c
357
nsset->cred = prepare_creds();
kernel/nsproxy.c
359
nsset->cred = current_cred();
kernel/nsproxy.c
360
if (!nsset->cred)
kernel/nsproxy.c
365
nsset->fs = me->fs;
kernel/nsproxy.c
367
nsset->fs = copy_fs_struct(me->fs);
kernel/nsproxy.c
368
if (!nsset->fs)
kernel/nsproxy.c
372
nsset->flags = flags;
kernel/nsproxy.c
376
put_nsset(nsset);
kernel/nsproxy.c
380
static inline int validate_ns(struct nsset *nsset, struct ns_common *ns)
kernel/nsproxy.c
382
return ns->ops->install(nsset, ns);
kernel/nsproxy.c
392
static int validate_nsset(struct nsset *nsset, struct pid *pid)
kernel/nsproxy.c
395
unsigned flags = nsset->flags;
kernel/nsproxy.c
450
ret = validate_ns(nsset, &user_ns->ns);
kernel/nsproxy.c
457
ret = validate_ns(nsset, from_mnt_ns(nsp->mnt_ns));
kernel/nsproxy.c
464
ret = validate_ns(nsset, &nsp->uts_ns->ns);
kernel/nsproxy.c
472
ret = validate_ns(nsset, &nsp->ipc_ns->ns);
kernel/nsproxy.c
480
ret = validate_ns(nsset, &pid_ns->ns);
kernel/nsproxy.c
488
ret = validate_ns(nsset, &nsp->cgroup_ns->ns);
kernel/nsproxy.c
496
ret = validate_ns(nsset, &nsp->net_ns->ns);
kernel/nsproxy.c
504
ret = validate_ns(nsset, &nsp->time_ns->ns);
kernel/nsproxy.c
529
static void commit_nsset(struct nsset *nsset)
kernel/nsproxy.c
531
unsigned flags = nsset->flags;
kernel/nsproxy.c
537
commit_creds(nsset_cred(nsset));
kernel/nsproxy.c
538
nsset->cred = NULL;
kernel/nsproxy.c
544
set_fs_root(me->fs, &nsset->fs->root);
kernel/nsproxy.c
545
set_fs_pwd(me->fs, &nsset->fs->pwd);
kernel/nsproxy.c
555
timens_commit(me, nsset->nsproxy->time_ns);
kernel/nsproxy.c
559
switch_task_namespaces(me, nsset->nsproxy);
kernel/nsproxy.c
560
nsset->nsproxy = NULL;
kernel/nsproxy.c
567
struct nsset nsset = {};
kernel/nsproxy.c
586
err = prepare_nsset(flags, &nsset);
kernel/nsproxy.c
591
err = validate_ns(&nsset, ns);
kernel/nsproxy.c
593
err = validate_nsset(&nsset, pidfd_pid(fd_file(f)));
kernel/nsproxy.c
595
commit_nsset(&nsset);
kernel/nsproxy.c
598
put_nsset(&nsset);
kernel/pid_namespace.c
401
static int pidns_install(struct nsset *nsset, struct ns_common *ns)
kernel/pid_namespace.c
403
struct nsproxy *nsproxy = nsset->nsproxy;
kernel/pid_namespace.c
408
!ns_capable(nsset->cred->user_ns, CAP_SYS_ADMIN))
kernel/time/namespace.c
307
static int timens_install(struct nsset *nsset, struct ns_common *new)
kernel/time/namespace.c
309
struct nsproxy *nsproxy = nsset->nsproxy;
kernel/time/namespace.c
316
!ns_capable(nsset->cred->user_ns, CAP_SYS_ADMIN))
kernel/user_namespace.c
1343
static int userns_install(struct nsset *nsset, struct ns_common *ns)
kernel/user_namespace.c
1364
cred = nsset_cred(nsset);
kernel/utsname.c
127
static int utsns_install(struct nsset *nsset, struct ns_common *new)
kernel/utsname.c
129
struct nsproxy *nsproxy = nsset->nsproxy;
kernel/utsname.c
133
!ns_capable(nsset->cred->user_ns, CAP_SYS_ADMIN))
net/core/net_namespace.c
1531
static int netns_install(struct nsset *nsset, struct ns_common *ns)
net/core/net_namespace.c
1533
struct nsproxy *nsproxy = nsset->nsproxy;
net/core/net_namespace.c
1537
!ns_capable(nsset->cred->user_ns, CAP_SYS_ADMIN))