Symbol: nsset
fs/namespace.c
6479
static int mntns_install(struct nsset *nsset, struct ns_common *ns)
fs/namespace.c
6481
struct nsproxy *nsproxy = nsset->nsproxy;
fs/namespace.c
6482
struct fs_struct *fs = nsset->fs;
fs/namespace.c
6484
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
338
static void put_nsset(struct nsset *nsset)
kernel/nsproxy.c
340
unsigned flags = nsset->flags;
kernel/nsproxy.c
343
put_cred(nsset_cred(nsset));
kernel/nsproxy.c
348
if (nsset->fs && (flags & CLONE_NEWNS) && (flags & ~CLONE_NEWNS))
kernel/nsproxy.c
349
free_fs_struct(nsset->fs);
kernel/nsproxy.c
350
if (nsset->nsproxy)
kernel/nsproxy.c
351
nsproxy_free(nsset->nsproxy);
kernel/nsproxy.c
354
static int prepare_nsset(unsigned flags, struct nsset *nsset)
kernel/nsproxy.c
358
nsset->nsproxy = create_new_namespaces(0, me, current_user_ns(), me->fs);
kernel/nsproxy.c
359
if (IS_ERR(nsset->nsproxy))
kernel/nsproxy.c
360
return PTR_ERR(nsset->nsproxy);
kernel/nsproxy.c
363
nsset->cred = prepare_creds();
kernel/nsproxy.c
365
nsset->cred = current_cred();
kernel/nsproxy.c
366
if (!nsset->cred)
kernel/nsproxy.c
371
nsset->fs = me->fs;
kernel/nsproxy.c
373
nsset->fs = copy_fs_struct(me->fs);
kernel/nsproxy.c
374
if (!nsset->fs)
kernel/nsproxy.c
378
nsset->flags = flags;
kernel/nsproxy.c
382
put_nsset(nsset);
kernel/nsproxy.c
386
static inline int validate_ns(struct nsset *nsset, struct ns_common *ns)
kernel/nsproxy.c
388
return ns->ops->install(nsset, ns);
kernel/nsproxy.c
398
static int validate_nsset(struct nsset *nsset, struct pid *pid)
kernel/nsproxy.c
401
unsigned flags = nsset->flags;
kernel/nsproxy.c
456
ret = validate_ns(nsset, &user_ns->ns);
kernel/nsproxy.c
463
ret = validate_ns(nsset, from_mnt_ns(nsp->mnt_ns));
kernel/nsproxy.c
470
ret = validate_ns(nsset, &nsp->uts_ns->ns);
kernel/nsproxy.c
478
ret = validate_ns(nsset, &nsp->ipc_ns->ns);
kernel/nsproxy.c
486
ret = validate_ns(nsset, &pid_ns->ns);
kernel/nsproxy.c
494
ret = validate_ns(nsset, &nsp->cgroup_ns->ns);
kernel/nsproxy.c
502
ret = validate_ns(nsset, &nsp->net_ns->ns);
kernel/nsproxy.c
510
ret = validate_ns(nsset, &nsp->time_ns->ns);
kernel/nsproxy.c
535
static void commit_nsset(struct nsset *nsset)
kernel/nsproxy.c
537
unsigned flags = nsset->flags;
kernel/nsproxy.c
543
commit_creds(nsset_cred(nsset));
kernel/nsproxy.c
544
nsset->cred = NULL;
kernel/nsproxy.c
550
set_fs_root(me->fs, &nsset->fs->root);
kernel/nsproxy.c
551
set_fs_pwd(me->fs, &nsset->fs->pwd);
kernel/nsproxy.c
561
timens_commit(me, nsset->nsproxy->time_ns);
kernel/nsproxy.c
565
switch_task_namespaces(me, nsset->nsproxy);
kernel/nsproxy.c
566
nsset->nsproxy = NULL;
kernel/nsproxy.c
573
struct nsset nsset = {};
kernel/nsproxy.c
592
err = prepare_nsset(flags, &nsset);
kernel/nsproxy.c
597
err = validate_ns(&nsset, ns);
kernel/nsproxy.c
599
err = validate_nsset(&nsset, pidfd_pid(fd_file(f)));
kernel/nsproxy.c
601
commit_nsset(&nsset);
kernel/nsproxy.c
604
put_nsset(&nsset);
kernel/pid_namespace.c
392
static int pidns_install(struct nsset *nsset, struct ns_common *ns)
kernel/pid_namespace.c
394
struct nsproxy *nsproxy = nsset->nsproxy;
kernel/pid_namespace.c
399
!ns_capable(nsset->cred->user_ns, CAP_SYS_ADMIN))
kernel/time/namespace.c
191
static int timens_install(struct nsset *nsset, struct ns_common *new)
kernel/time/namespace.c
193
struct nsproxy *nsproxy = nsset->nsproxy;
kernel/time/namespace.c
200
!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
1529
static int netns_install(struct nsset *nsset, struct ns_common *ns)
net/core/net_namespace.c
1531
struct nsproxy *nsproxy = nsset->nsproxy;
net/core/net_namespace.c
1535
!ns_capable(nsset->cred->user_ns, CAP_SYS_ADMIN))