• Home
  • Raw
  • Download

Lines Matching refs:ns

670 	struct mnt_namespace *ns = current->nsproxy->mnt_ns;  in __is_local_mountpoint()  local
678 list_for_each_entry(mnt, &ns->list, mnt_list) { in __is_local_mountpoint()
784 static void touch_mnt_namespace(struct mnt_namespace *ns) in touch_mnt_namespace() argument
786 if (ns) { in touch_mnt_namespace()
787 ns->event = ++event; in touch_mnt_namespace()
788 wake_up_interruptible(&ns->poll); in touch_mnt_namespace()
795 static void __touch_mnt_namespace(struct mnt_namespace *ns) in __touch_mnt_namespace() argument
797 if (ns && ns->event != event) { in __touch_mnt_namespace()
798 ns->event = event; in __touch_mnt_namespace()
799 wake_up_interruptible(&ns->poll); in __touch_mnt_namespace()
1279 if (p->cached_event == p->ns->event) { in m_start()
1284 v = seq_list_next(v, &p->ns->list, &p->cached_index); in m_start()
1289 p->cached_event = p->ns->event; in m_start()
1290 p->cached_mount = seq_list_start(&p->ns->list, *pos); in m_start()
1299 p->cached_mount = seq_list_next(v, &p->ns->list, pos); in m_next()
1476 struct mnt_namespace *ns; in umount_tree() local
1481 ns = p->mnt_ns; in umount_tree()
1482 if (ns) { in umount_tree()
1483 ns->mounts--; in umount_tree()
1484 __touch_mnt_namespace(ns); in umount_tree()
1760 struct mnt_namespace *to_mnt_ns(struct ns_common *ns) in to_mnt_ns() argument
1762 return container_of(ns, struct mnt_namespace, ns); in to_mnt_ns()
1865 struct mnt_namespace *ns; in dissolve_on_fput() local
1868 ns = real_mount(mnt)->mnt_ns; in dissolve_on_fput()
1869 if (ns) { in dissolve_on_fput()
1870 if (is_anon_ns(ns)) in dissolve_on_fput()
1873 ns = NULL; in dissolve_on_fput()
1877 if (ns) in dissolve_on_fput()
1878 free_mnt_ns(ns); in dissolve_on_fput()
2011 int count_mounts(struct mnt_namespace *ns, struct mount *mnt) in count_mounts() argument
2020 old = ns->mounts; in count_mounts()
2021 pending = ns->pending_mounts; in count_mounts()
2029 ns->pending_mounts = pending + mounts; in count_mounts()
2103 struct mnt_namespace *ns = dest_mnt->mnt_ns; in attach_recursive_mnt() local
2118 err = count_mounts(ns, source_mnt); in attach_recursive_mnt()
2176 ns->pending_mounts = 0; in attach_recursive_mnt()
2366 struct mnt_namespace *ns = alloc_mnt_ns(user_ns, true); in open_detached_copy() local
2370 if (IS_ERR(ns)) in open_detached_copy()
2371 return ERR_CAST(ns); in open_detached_copy()
2377 free_mnt_ns(ns); in open_detached_copy()
2383 p->mnt_ns = ns; in open_detached_copy()
2384 ns->mounts++; in open_detached_copy()
2386 ns->root = mnt; in open_detached_copy()
2387 list_add_tail(&ns->list, &mnt->mnt_list); in open_detached_copy()
2651 struct mnt_namespace *ns; in do_move_mount() local
2668 ns = old->mnt_ns; in do_move_mount()
2680 if (!(attached ? check_mnt(old) : is_anon_ns(ns))) in do_move_mount()
2726 free_mnt_ns(ns); in do_move_mount()
3200 static struct ucounts *inc_mnt_namespaces(struct user_namespace *ns) in inc_mnt_namespaces() argument
3202 return inc_ucount(ns, current_euid(), UCOUNT_MNT_NAMESPACES); in inc_mnt_namespaces()
3210 static void free_mnt_ns(struct mnt_namespace *ns) in free_mnt_ns() argument
3212 if (!is_anon_ns(ns)) in free_mnt_ns()
3213 ns_free_inum(&ns->ns); in free_mnt_ns()
3214 dec_mnt_namespaces(ns->ucounts); in free_mnt_ns()
3215 put_user_ns(ns->user_ns); in free_mnt_ns()
3216 kfree(ns); in free_mnt_ns()
3244 ret = ns_alloc_inum(&new_ns->ns); in alloc_mnt_ns()
3251 new_ns->ns.ops = &mntns_operations; in alloc_mnt_ns()
3263 struct mnt_namespace *copy_mnt_ns(unsigned long flags, struct mnt_namespace *ns, in copy_mnt_ns() argument
3273 BUG_ON(!ns); in copy_mnt_ns()
3276 get_mnt_ns(ns); in copy_mnt_ns()
3277 return ns; in copy_mnt_ns()
3280 old = ns->root; in copy_mnt_ns()
3289 if (user_ns != ns->user_ns) in copy_mnt_ns()
3297 if (user_ns != ns->user_ns) { in copy_mnt_ns()
3345 struct mnt_namespace *ns; in mount_subtree() local
3350 ns = alloc_mnt_ns(&init_user_ns, true); in mount_subtree()
3351 if (IS_ERR(ns)) { in mount_subtree()
3353 return ERR_CAST(ns); in mount_subtree()
3355 mnt->mnt_ns = ns; in mount_subtree()
3356 ns->root = mnt; in mount_subtree()
3357 ns->mounts++; in mount_subtree()
3358 list_add(&mnt->mnt_list, &ns->list); in mount_subtree()
3363 put_mnt_ns(ns); in mount_subtree()
3426 struct mnt_namespace *ns; in SYSCALL_DEFINE3() local
3521 ns = alloc_mnt_ns(current->nsproxy->mnt_ns->user_ns, true); in SYSCALL_DEFINE3()
3522 if (IS_ERR(ns)) { in SYSCALL_DEFINE3()
3523 ret = PTR_ERR(ns); in SYSCALL_DEFINE3()
3527 mnt->mnt_ns = ns; in SYSCALL_DEFINE3()
3528 ns->root = mnt; in SYSCALL_DEFINE3()
3529 ns->mounts = 1; in SYSCALL_DEFINE3()
3530 list_add(&mnt->mnt_list, &ns->list); in SYSCALL_DEFINE3()
3770 struct mnt_namespace *ns; in init_mount_tree() local
3777 ns = alloc_mnt_ns(&init_user_ns, false); in init_mount_tree()
3778 if (IS_ERR(ns)) in init_mount_tree()
3781 m->mnt_ns = ns; in init_mount_tree()
3782 ns->root = m; in init_mount_tree()
3783 ns->mounts = 1; in init_mount_tree()
3784 list_add(&m->mnt_list, &ns->list); in init_mount_tree()
3785 init_task.nsproxy->mnt_ns = ns; in init_mount_tree()
3786 get_mnt_ns(ns); in init_mount_tree()
3831 void put_mnt_ns(struct mnt_namespace *ns) in put_mnt_ns() argument
3833 if (!atomic_dec_and_test(&ns->count)) in put_mnt_ns()
3835 drop_collected_mounts(&ns->root->mnt); in put_mnt_ns()
3836 free_mnt_ns(ns); in put_mnt_ns()
3894 static bool mnt_already_visible(struct mnt_namespace *ns, in mnt_already_visible() argument
3903 list_for_each_entry(mnt, &ns->list, mnt_list) { in mnt_already_visible()
3961 struct mnt_namespace *ns = current->nsproxy->mnt_ns; in mount_too_revealing() local
3964 if (ns->user_ns == &init_user_ns) in mount_too_revealing()
3978 return !mnt_already_visible(ns, sb, new_mnt_flags); in mount_too_revealing()
3996 struct ns_common *ns = NULL; in mntns_get() local
4002 ns = &nsproxy->mnt_ns->ns; in mntns_get()
4003 get_mnt_ns(to_mnt_ns(ns)); in mntns_get()
4007 return ns; in mntns_get()
4010 static void mntns_put(struct ns_common *ns) in mntns_put() argument
4012 put_mnt_ns(to_mnt_ns(ns)); in mntns_put()
4015 static int mntns_install(struct nsproxy *nsproxy, struct ns_common *ns) in mntns_install() argument
4018 struct mnt_namespace *mnt_ns = to_mnt_ns(ns), *old_mnt_ns; in mntns_install()
4057 static struct user_namespace *mntns_owner(struct ns_common *ns) in mntns_owner() argument
4059 return to_mnt_ns(ns)->user_ns; in mntns_owner()