nsproxy
ns = current->nsproxy->ipc_ns;
info->ipc_ns = get_ipc_ns(current->nsproxy->ipc_ns);
info->ipc_ns = get_ipc_ns(current->nsproxy->ipc_ns);
ret = __rdma_create_id(current->nsproxy->net_ns, event_handler, context,
ret = rdma_dev_change_netns(dev, current->nsproxy->net_ns, net);
if (!rdma_dev_access_netns(port->ib_dev, current->nsproxy->net_ns)) {
if (!rdma_dev_access_netns(port->ib_dev, current->nsproxy->net_ns)) {
if (!rdma_dev_access_netns(ib_dev, current->nsproxy->net_ns)) {
dev_net_set(ndev, current->nsproxy->net_ns);
nsim_bus_dev->initial_net = current->nsproxy->net_ns;
dev = netkit_dev_fetch(current->nsproxy->net_ns, attr->target_ifindex,
dev = netkit_dev_fetch(current->nsproxy->net_ns, attr->target_ifindex,
dev = netkit_dev_fetch(current->nsproxy->net_ns,
dev = netkit_dev_fetch(current->nsproxy->net_ns,
return ppp_register_net_channel(current->nsproxy->net_ns, chan);
err = ppp_unattached_ioctl(current->nsproxy->net_ns,
pn = ppp_pernet(current->nsproxy->net_ns);
struct net *net = current->nsproxy->net_ns;
struct net *net = current->nsproxy->net_ns;
ret = sock_create_kern(current->nsproxy->net_ns,
net = current->nsproxy->net_ns;
sbi->mnt_ns_id = to_ns_common(current->nsproxy->mnt_ns)->ns_id;
sbi->mnt_ns_id = to_ns_common(current->nsproxy->mnt_ns)->ns_id;
if (sbi->mnt_ns_id != to_ns_common(current->nsproxy->mnt_ns)->ns_id) {
if (current->nsproxy->mnt_ns != init_task.nsproxy->mnt_ns)
current->nsproxy->mnt_ns == init_task.nsproxy->mnt_ns)
fc->net_ns = get_net(current->nsproxy->net_ns);
struct lockd_net *ln = net_generic(current->nsproxy->net_ns,
struct lockd_net *ln = net_generic(current->nsproxy->net_ns,
return ns_capable(current->nsproxy->mnt_ns->user_ns, CAP_SYS_ADMIN);
return current->nsproxy->mnt_ns->ns.ns_id >= mnt_ns->ns.ns_id;
struct user_namespace *user_ns = current->nsproxy->mnt_ns->user_ns;
struct mnt_namespace *ns, *mnt_ns = current->nsproxy->mnt_ns, *src_mnt_ns;
struct mnt_namespace *ns = current->nsproxy->mnt_ns;
if (parent_mnt_to == current->nsproxy->mnt_ns->root)
ns = alloc_mnt_ns(current->nsproxy->mnt_ns->user_ns, true);
touch_mnt_namespace(current->nsproxy->mnt_ns);
if (ns == current->nsproxy->mnt_ns) {
mnt_ns = current->nsproxy->mnt_ns;
if (kreq.mnt_ns_id && (ns != current->nsproxy->mnt_ns) &&
if (kreq.mnt_ns_id && (kls.ns != current->nsproxy->mnt_ns) &&
init_task.nsproxy->mnt_ns = &init_mnt_ns;
root = topmost_overmount(current->nsproxy->mnt_ns->root);
struct mnt_namespace *ns = current->nsproxy->mnt_ns;
struct nsproxy *nsproxy;
nsproxy = task->nsproxy;
if (nsproxy) {
ns = &nsproxy->mnt_ns->ns;
struct nsproxy *nsproxy = nsset->nsproxy;
old_mnt_ns = nsproxy->mnt_ns;
nsproxy->mnt_ns = mnt_ns;
nsproxy->mnt_ns = old_mnt_ns;
struct mnt_namespace *ns = current->nsproxy->mnt_ns;
return mnt->mnt_ns == current->nsproxy->mnt_ns;
return !seq || (seq == current->nsproxy->mnt_ns->ns.ns_id);
nfsd_file_cache_purge(current->nsproxy->net_ns);
struct nfsd_net *nn = net_generic(current->nsproxy->net_ns,
return exports_net_open(current->nsproxy->net_ns, file);
void nsproxy_ns_active_get(struct nsproxy *ns)
void nsproxy_ns_active_put(struct nsproxy *ns)
struct nsproxy *nsp __free(put_nsproxy) = NULL;
nsp = task->nsproxy;
struct nsproxy *ns;
ns = task->nsproxy;
p->net = get_net_track(current->nsproxy->net_ns, &p->ns_tracker,
struct nsproxy *nsp;
nsp = task->nsproxy;
if (!net_eq(cifs_net_ns(server), current->nsproxy->net_ns))
cifs_set_net_ns(tcp_ses, get_net(current->nsproxy->net_ns));
rc = dns_query(current->nsproxy->net_ns, NULL, name,
ret = sock_create_kern(current->nsproxy->net_ns, PF_INET6, SOCK_STREAM,
ret = sock_create_kern(current->nsproxy->net_ns, PF_INET,
extern struct nsproxy init_nsproxy;
struct cgroup_namespace *: current->nsproxy->cgroup_ns, \
struct ipc_namespace *: current->nsproxy->ipc_ns, \
struct net *: current->nsproxy->net_ns, \
struct mnt_namespace *: current->nsproxy->mnt_ns, \
struct time_namespace *: current->nsproxy->time_ns, \
struct uts_namespace *: current->nsproxy->uts_ns)
void nsproxy_ns_active_get(struct nsproxy *ns);
void nsproxy_ns_active_put(struct nsproxy *ns);
void switch_task_namespaces(struct task_struct *tsk, struct nsproxy *new);
void deactivate_nsproxy(struct nsproxy *ns);
int unshare_nsproxy_namespaces(unsigned long, struct nsproxy **,
static inline void put_nsproxy(struct nsproxy *ns)
static inline void get_nsproxy(struct nsproxy *ns)
DEFINE_FREE(put_nsproxy, struct nsproxy *, if (_T) put_nsproxy(_T))
extern struct nsproxy init_nsproxy;
struct nsproxy *nsproxy;
struct nsproxy *nsproxy;
struct nsproxy;
struct nsproxy;
struct time_namespace *ns = current->nsproxy->time_ns;
static inline void timens_on_fork(struct nsproxy *nsproxy,
void timens_on_fork(struct nsproxy *nsproxy, struct task_struct *tsk);
struct timens_offsets *ns_offsets = ¤t->nsproxy->time_ns->offsets;
struct timens_offsets *ns_offsets = ¤t->nsproxy->time_ns->offsets;
struct timens_offsets *ns_offsets = ¤t->nsproxy->time_ns->offsets;
struct timens_offsets *ns_offsets = ¤t->nsproxy->time_ns->offsets;
return ¤t->nsproxy->uts_ns->name;
.nsproxy = &init_nsproxy,
ifq->netdev = netdev_get_by_index_lock(current->nsproxy->net_ns, reg.if_idx);
return ¤t->nsproxy->ipc_ns->ipc_set;
return ¤t->nsproxy->ipc_ns->ipc_set == set;
return ¤t->nsproxy->ipc_ns->mq_set;
return ¤t->nsproxy->ipc_ns->mq_set == set;
ctx->ipc_ns = get_ipc_ns(current->nsproxy->ipc_ns);
struct vfsmount *mnt = current->nsproxy->ipc_ns->mq_mnt;
struct ipc_namespace *ipc_ns = current->nsproxy->ipc_ns;
ns = current->nsproxy->ipc_ns;
ns = current->nsproxy->ipc_ns;
ns = current->nsproxy->ipc_ns;
ns = current->nsproxy->ipc_ns;
ns = current->nsproxy->ipc_ns;
struct nsproxy *nsproxy;
nsproxy = task->nsproxy;
if (nsproxy)
ns = get_ipc_ns(nsproxy->ipc_ns);
struct nsproxy *nsproxy = nsset->nsproxy;
put_ipc_ns(nsproxy->ipc_ns);
nsproxy->ipc_ns = get_ipc_ns(ns);
ns = current->nsproxy->ipc_ns;
ns = current->nsproxy->ipc_ns;
ns = current->nsproxy->ipc_ns;
sma = sem_obtain_object_check(tsk->nsproxy->ipc_ns, semid);
ns = current->nsproxy->ipc_ns;
ns = current->nsproxy->ipc_ns;
ns = current->nsproxy->ipc_ns;
ns = current->nsproxy->ipc_ns;
ns = current->nsproxy->ipc_ns;
iter->ns = get_ipc_ns(current->nsproxy->ipc_ns);
current->nsproxy->cgroup_ns);
return __dev_map_hash_update_elem(current->nsproxy->net_ns,
return __dev_map_update_elem(current->nsproxy->net_ns,
net = current->nsproxy->net_ns;
ret = __netns_bpf_prog_detach(current->nsproxy->net_ns, type, prog);
netdev = dev_get_by_index(current->nsproxy->net_ns, attr->prog_ifindex);
struct net *net = current->nsproxy->net_ns;
struct net *net = current->nsproxy->net_ns;
struct net *net = current->nsproxy->net_ns;
struct net *net = current->nsproxy->net_ns;
struct net *net = current->nsproxy->net_ns;
cset = current->nsproxy->cgroup_ns->root_cset;
if (current->nsproxy) {
cset = current->nsproxy->cgroup_ns->root_cset;
if (current->nsproxy->cgroup_ns == &init_cgroup_ns) {
ctx->ns = current->nsproxy->cgroup_ns;
ctx->ns = current->nsproxy->cgroup_ns;
current->nsproxy->cgroup_ns);
current->nsproxy->cgroup_ns);
struct css_set *rcset = child->nsproxy->cgroup_ns->root_cset;
child->nsproxy->cgroup_ns->root_cset = cset;
current->nsproxy->cgroup_ns);
if (cgroup_ns == nsproxy->cgroup_ns)
put_cgroup_ns(nsproxy->cgroup_ns);
nsproxy->cgroup_ns = cgroup_ns;
struct nsproxy *nsproxy;
nsproxy = task->nsproxy;
if (nsproxy) {
ns = nsproxy->cgroup_ns;
struct nsproxy *nsproxy = nsset->nsproxy;
struct nsproxy *nsp = current->nsproxy;
pid = alloc_pid(p->nsproxy->pid_ns_for_children, args->set_tid,
struct nsproxy *new_nsproxy = NULL;
new_nsp->uts_ns = copy_utsname(flags, user_ns, tsk->nsproxy->uts_ns);
new_nsp->ipc_ns = copy_ipcs(flags, user_ns, tsk->nsproxy->ipc_ns);
copy_pid_ns(flags, user_ns, tsk->nsproxy->pid_ns_for_children);
tsk->nsproxy->cgroup_ns);
new_nsp->net_ns = copy_net_ns(flags, user_ns, tsk->nsproxy->net_ns);
tsk->nsproxy->time_ns_for_children);
new_nsp->time_ns = get_time_ns(tsk->nsproxy->time_ns);
struct nsproxy *old_ns = tsk->nsproxy;
struct nsproxy *new_ns;
tsk->nsproxy = new_ns;
struct nsproxy **new_nsp, struct cred *new_cred, struct fs_struct *new_fs)
void switch_task_namespaces(struct task_struct *p, struct nsproxy *new)
struct nsproxy *ns;
ns = p->nsproxy;
p->nsproxy = new;
struct nsproxy *new;
if (tsk->nsproxy->time_ns_for_children == tsk->nsproxy->time_ns)
struct nsproxy init_nsproxy = {
if (nsset->nsproxy)
nsproxy_free(nsset->nsproxy);
nsset->nsproxy = create_new_namespaces(0, me, current_user_ns(), me->fs);
if (IS_ERR(nsset->nsproxy))
return PTR_ERR(nsset->nsproxy);
struct nsproxy *nsp;
nsp = tsk->nsproxy;
static inline struct nsproxy *create_nsproxy(void)
struct nsproxy *nsproxy;
timens_commit(me, nsset->nsproxy->time_ns);
switch_task_namespaces(me, nsset->nsproxy);
nsset->nsproxy = NULL;
nsproxy = kmem_cache_alloc(nsproxy_cachep, GFP_KERNEL);
if (nsproxy)
refcount_set(&nsproxy->count, 1);
return nsproxy;
nsproxy_cachep = KMEM_CACHE(nsproxy, SLAB_PANIC|SLAB_ACCOUNT);
static inline void nsproxy_free(struct nsproxy *ns)
void deactivate_nsproxy(struct nsproxy *ns)
static struct nsproxy *create_new_namespaces(u64 flags,
struct nsproxy *new_nsp;
new_nsp->mnt_ns = copy_mnt_ns(flags, tsk->nsproxy->mnt_ns, user_ns, new_fs);
if (task->nsproxy) {
ns = task->nsproxy->pid_ns_for_children;
struct nsproxy *nsproxy = nsset->nsproxy;
put_pid_ns(nsproxy->pid_ns_for_children);
nsproxy->pid_ns_for_children = get_pid_ns(new);
if (!ns_capable(current->nsproxy->uts_ns->user_ns, CAP_SYS_ADMIN))
if (!ns_capable(current->nsproxy->uts_ns->user_ns, CAP_SYS_ADMIN))
return current->nsproxy->time_ns->vvar_page;
struct nsproxy *nsproxy;
nsproxy = task->nsproxy;
if (nsproxy) {
ns = nsproxy->time_ns;
struct nsproxy *nsproxy;
nsproxy = task->nsproxy;
if (nsproxy) {
ns = nsproxy->time_ns_for_children;
struct nsproxy *nsproxy = nsset->nsproxy;
put_time_ns(nsproxy->time_ns);
nsproxy->time_ns = ns;
put_time_ns(nsproxy->time_ns_for_children);
nsproxy->time_ns_for_children = ns;
void timens_on_fork(struct nsproxy *nsproxy, struct task_struct *tsk)
struct ns_common *nsc = &nsproxy->time_ns_for_children->ns;
if (nsproxy->time_ns == nsproxy->time_ns_for_children)
put_time_ns(nsproxy->time_ns);
nsproxy->time_ns = ns;
struct nsproxy *nsproxy;
nsproxy = task->nsproxy;
if (nsproxy) {
ns = nsproxy->uts_ns;
struct nsproxy *nsproxy = nsset->nsproxy;
put_uts_ns(nsproxy->uts_ns);
nsproxy->uts_ns = ns;
uts_ns = current->nsproxy->uts_ns;
err = inet_pton_with_scope(current->nsproxy->net_ns, AF_UNSPEC, addr,
err = __sock_create(current->nsproxy->net_ns, stor.ss_family,
err = __sock_create(current->nsproxy->net_ns, PF_UNIX,
device = dev_get_by_index(current->nsproxy->net_ns,
rxqueue = __netif_get_rx_queue(current->nsproxy->net_ns->loopback_dev, 0);
struct net *net = current->nsproxy->net_ns;
struct net *net = current->nsproxy->net_ns;
if (!net_eq(current->nsproxy->net_ns, read_pnet(&client->msgr.net)))
ip_len = dns_query(current->nsproxy->net_ns,
write_pnet(&msgr->net, get_net(current->nsproxy->net_ns));
struct net *net = current->nsproxy->net_ns;
struct net *net = current->nsproxy->net_ns;
struct net *ns = current->nsproxy->net_ns;
struct nsproxy *nsproxy;
nsproxy = task->nsproxy;
if (nsproxy)
net = get_net(nsproxy->net_ns);
struct nsproxy *nsproxy = nsset->nsproxy;
put_net(nsproxy->net_ns);
nsproxy->net_ns = get_net(net);
struct nsproxy *nsproxy;
nsproxy = tsk->nsproxy;
if (nsproxy)
net = get_net(nsproxy->net_ns);
struct net *net = current->nsproxy->net_ns;
struct pktgen_net *pn = net_generic(current->nsproxy->net_ns, pg_net_id);
memcpy(all, current->nsproxy->net_ns->ipv4.devconf_all,
current->nsproxy->net_ns->ipv4.devconf_dflt,
old_net = current->nsproxy->net_ns;
old_net = current->nsproxy->net_ns;
memcpy(all, current->nsproxy->net_ns->ipv6.devconf_all,
current->nsproxy->net_ns->ipv6.devconf_dflt,
struct net *net = current->nsproxy->net_ns;
if (current->nsproxy->net_ns != &init_net)
if (!net_eq(current->nsproxy->net_ns, sock_net(sk)))
return __sock_create(current->nsproxy->net_ns, family, type, protocol, res, 0);
return ¤t->nsproxy->net_ns->sysctls;
return ¤t->nsproxy->net_ns->sysctls == set;
net->vsock.mode = vsock_net_child_mode(current->nsproxy->net_ns);
index_key->domain_tag = current->nsproxy->net_ns->key_domain;
if (!task || !task->nsproxy->net_ns->smc.hs_ctrl)
BPF_CORE_READ(task, nsproxy, cgroup_ns, root_cset, dfl_cgrp, kn);
err = sock_create_kern(current->nsproxy->net_ns, args->af, args->type,