| /linux/fs/ |
| H A D | namespace.c | 213 static inline struct hlist_head *m_hash(struct vfsmount *mnt, struct dentry *dentry) in m_hash() argument 215 unsigned long tmp = ((unsigned long)mnt / L1_CACHE_BYTES); in m_hash() 228 static int mnt_alloc_id(struct mount *mnt) in mnt_alloc_id() argument 233 res = __xa_alloc(&mnt_id_xa, &mnt->mnt_id, mnt, XA_LIMIT(1, INT_MAX), GFP_KERNEL); in mnt_alloc_id() 235 mnt->mnt_id_unique = ++mnt_id_ctr; in mnt_alloc_id() 240 static void mnt_free_id(struct mount *mnt) in mnt_free_id() argument 242 xa_erase(&mnt_id_xa, mnt->mnt_id); in mnt_free_id() 248 static int mnt_alloc_group_id(struct mount *mnt) in mnt_alloc_group_id() argument 254 mnt->mnt_group_id = res; in mnt_alloc_group_id() 261 void mnt_release_group_id(struct mount *mnt) in mnt_release_group_id() argument [all …]
|
| H A D | pnode.c | 33 static struct mount *get_peer_under_root(struct mount *mnt, in get_peer_under_root() argument 37 struct mount *m = mnt; in get_peer_under_root() 41 if (m->mnt_ns == ns && is_path_reachable(m, m->mnt.mnt_root, root)) in get_peer_under_root() 45 } while (m != mnt); in get_peer_under_root() 56 int get_dominating_id(struct mount *mnt, const struct path *root) in get_dominating_id() argument 60 for (m = mnt->mnt_master; m != NULL; m = m->mnt_master) { in get_dominating_id() 61 struct mount *d = get_peer_under_root(m, mnt->mnt_ns, root); in get_dominating_id() 71 return m->mnt.mnt_flags & MNT_UMOUNT; in will_be_unmounted() 74 static void transfer_propagation(struct mount *mnt, struct mount *to) in transfer_propagation() argument 79 hlist_for_each_entry_safe(m, n, &mnt->mnt_slave_list, mnt_slave) { in transfer_propagation() [all …]
|
| H A D | mount.h | 47 struct vfsmount mnt; member 112 static inline struct mount *real_mount(struct vfsmount *mnt) in real_mount() argument 114 return container_of(mnt, struct mount, mnt); in real_mount() 117 static inline int mnt_has_parent(const struct mount *mnt) in mnt_has_parent() argument 119 return mnt != mnt->mnt_parent; in mnt_has_parent() 122 static inline int is_mounted(struct vfsmount *mnt) in is_mounted() argument 125 return !IS_ERR_OR_NULL(real_mount(mnt)->mnt_ns); in is_mounted() 134 struct mount *m = __lookup_mnt(path->mnt, path->dentry); in __path_is_mountpoint() 135 return m && likely(!(m->mnt.mnt_flags & MNT_SYNC_UMOUNT)); in __path_is_mountpoint() 188 static inline bool mnt_ns_attached(const struct mount *mnt) in mnt_ns_attached() argument [all …]
|
| H A D | proc_namespace.c | 64 static void show_vfsmnt_opts(struct seq_file *m, struct vfsmount *mnt) in show_vfsmnt_opts() argument 79 if (mnt->mnt_flags & fs_infop->flag) in show_vfsmnt_opts() 83 if (is_idmapped_mnt(mnt)) in show_vfsmnt_opts() 101 static int show_vfsmnt(struct seq_file *m, struct vfsmount *mnt) in show_vfsmnt() argument 104 struct mount *r = real_mount(mnt); in show_vfsmnt() 105 struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt }; in show_vfsmnt() 123 seq_puts(m, __mnt_is_readonly(mnt) ? " ro" : " rw"); in show_vfsmnt() 127 show_vfsmnt_opts(m, mnt); in show_vfsmnt() 135 static int show_mountinfo(struct seq_file *m, struct vfsmount *mnt) in show_mountinfo() argument 138 struct mount *r = real_mount(mnt); in show_mountinfo() [all …]
|
| H A D | pnode.h | 21 #define IS_MNT_LOCKED(m) ((m)->mnt.mnt_flags & MNT_LOCKED) 33 static inline void set_mnt_shared(struct mount *mnt) in set_mnt_shared() argument 35 mnt->mnt_t_flags &= ~T_SHARED_MASK; in set_mnt_shared() 36 mnt->mnt_t_flags |= T_SHARED; in set_mnt_shared() 52 int get_dominating_id(struct mount *mnt, const struct path *root); 53 int mnt_get_count(struct mount *mnt); 57 struct mount *mnt); 61 int count_mounts(struct mnt_namespace *ns, struct mount *mnt);
|
| H A D | fhandle.c | 98 if (put_user(real_mount(path->mnt)->mnt_id_unique, in do_sys_name_to_handle() 102 if (put_user(real_mount(path->mnt)->mnt_id, in do_sys_name_to_handle() 206 struct mnt_idmap *idmap = mnt_idmap(ctx->root.mnt); in vfs_dentry_acceptable() 271 struct vfsmount *mnt = ctx->root.mnt; in do_handle_to_path() local 276 dentry = exportfs_decode_fh_raw(mnt, (struct fid *)handle->f_handle, in do_handle_to_path() 286 path->mnt = mntget(mnt); in do_handle_to_path() 322 if (ns_capable(root->mnt->mnt_sb->s_user_ns, CAP_SYS_ADMIN)) in may_decode_fh() 324 else if (is_mounted(root->mnt) && in may_decode_fh() 325 ns_capable(real_mount(root->mnt)->mnt_ns->user_ns, in may_decode_fh() 327 !has_locked_children(real_mount(root->mnt), root->dentry)) in may_decode_fh() [all …]
|
| H A D | d_path.c | 104 static int __prepend_path(const struct dentry *dentry, const struct mount *mnt, in __prepend_path() argument 107 while (dentry != root->dentry || &mnt->mnt != root->mnt) { in __prepend_path() 110 if (dentry == mnt->mnt.mnt_root) { in __prepend_path() 111 struct mount *m = READ_ONCE(mnt->mnt_parent); in __prepend_path() 114 if (likely(mnt != m)) { in __prepend_path() 115 dentry = READ_ONCE(mnt->mnt_mountpoint); in __prepend_path() 116 mnt = m; in __prepend_path() 120 mnt_ns = READ_ONCE(mnt->mnt_ns); in __prepend_path() 172 error = __prepend_path(path->dentry, real_mount(path->mnt), root, &b); in prepend_path() 282 (!IS_ROOT(path->dentry) || path->dentry != path->mnt->mnt_root)) in d_path()
|
| H A D | namei.c | 613 mntget(path->mnt); in path_get() 627 mntput(path->mnt); in path_put() 669 p->path.mnt = NULL; in __set_nameidata() 719 static bool path_connected(struct vfsmount *mnt, struct dentry *dentry) in path_connected() argument 721 struct super_block *sb = mnt->mnt_sb; in path_connected() 724 if (mnt->mnt_root == sb->s_root) in path_connected() 727 return is_subdir(dentry, mnt->mnt_root); in path_connected() 763 nd->path.mnt = NULL; in terminate_walk() 770 int res = __legitimize_mnt(path->mnt, mseq); in __legitimize_path() 773 path->mnt = NULL; in __legitimize_path() [all …]
|
| H A D | file_table.c | 361 struct vfsmount *mnt, struct path *path) in alloc_path_pseudo() argument 363 path->dentry = d_alloc_pseudo(mnt->mnt_sb, &QSTR(name)); in alloc_path_pseudo() 366 path->mnt = mntget(mnt); in alloc_path_pseudo() 371 struct file *alloc_file_pseudo(struct inode *inode, struct vfsmount *mnt, in alloc_file_pseudo() argument 379 ret = alloc_path_pseudo(name, inode, mnt, &path); in alloc_file_pseudo() 399 struct vfsmount *mnt, const char *name, in alloc_file_pseudo_noaccount() argument 407 ret = alloc_path_pseudo(name, inode, mnt, &path); in alloc_file_pseudo_noaccount() 445 struct vfsmount *mnt = file->f_path.mnt; in __fput() local 478 dissolve_on_fput(mnt); in __fput() 479 mntput(mnt); in __fput()
|
| H A D | init.c | 91 error = mnt_want_write(path.mnt); in init_chown() 94 mnt_drop_write(path.mnt); in init_chown() 159 error = vfs_mknod(mnt_idmap(path.mnt), path.dentry->d_inode, in init_mknod() 182 if (old_path.mnt != new_path.mnt) in init_link() 184 idmap = mnt_idmap(new_path.mnt); in init_link() 211 error = vfs_symlink(mnt_idmap(path.mnt), path.dentry->d_inode, in init_symlink() 235 dentry = vfs_mkdir(mnt_idmap(path.mnt), path.dentry->d_inode, in init_mkdir()
|
| /linux/include/linux/ |
| H A D | mount.h | 65 static inline struct mnt_idmap *mnt_idmap(const struct vfsmount *mnt) in mnt_idmap() argument 68 return READ_ONCE(mnt->mnt_idmap); in mnt_idmap() 71 extern int mnt_want_write(struct vfsmount *mnt); 73 extern void mnt_drop_write(struct vfsmount *mnt); 75 extern void mntput(struct vfsmount *mnt); 76 extern struct vfsmount *mntget(struct vfsmount *mnt); 77 extern void mnt_make_shortterm(struct vfsmount *mnt); 79 extern bool __mnt_is_readonly(const struct vfsmount *mnt); 80 extern bool mnt_may_suid(struct vfsmount *mnt); 83 int mnt_get_write_access(struct vfsmount *mnt); [all …]
|
| /linux/tools/lib/api/fs/ |
| H A D | tracing_path.c | 26 const char *mnt; in tracing_path_tracefs_mount() local 28 mnt = tracefs__mount(); in tracing_path_tracefs_mount() 29 if (!mnt) in tracing_path_tracefs_mount() 32 __tracing_path_set("", mnt); in tracing_path_tracefs_mount() 39 const char *mnt; in tracing_path_debugfs_mount() local 41 mnt = debugfs__mount(); in tracing_path_debugfs_mount() 42 if (!mnt) in tracing_path_debugfs_mount() 45 __tracing_path_set("tracing/", mnt); in tracing_path_debugfs_mount() 52 const char *mnt; in tracing_path_mount() local 54 mnt = tracing_path_tracefs_mount(); in tracing_path_mount() [all …]
|
| /linux/tools/testing/selftests/memfd/ |
| H A D | run_fuse_test.sh | 5 fusermount -u ./mnt 6 rmdir ./mnt 11 mkdir mnt 12 ./fuse_mnt ./mnt 13 ./fuse_test ./mnt/memfd $@ 14 fusermount -u ./mnt 15 rmdir ./mnt
|
| /linux/tools/bpf/bpftool/ |
| H A D | tracelog.c | 27 static int validate_tracefs_mnt(const char *mnt, unsigned long magic) in validate_tracefs_mnt() argument 31 if (statfs(mnt, &st_fs) < 0) in validate_tracefs_mnt() 40 find_tracefs_mnt_single(unsigned long magic, char *mnt, const char *mntpt) in find_tracefs_mnt_single() argument 53 strcpy(mnt, mntpt); in find_tracefs_mnt_single() 57 static bool get_tracefs_pipe(char *mnt) in get_tracefs_pipe() argument 71 if (find_tracefs_mnt_single(TRACEFS_MAGIC, mnt, *ptr)) in get_tracefs_pipe() 81 while (fscanf(fp, format, mnt, type) == 2) in get_tracefs_pipe() 89 if (found && validate_tracefs_mnt(mnt, TRACEFS_MAGIC)) in get_tracefs_pipe() 96 strcpy(mnt, known_mnts[0]); in get_tracefs_pipe() 97 if (mount_tracefs(mnt)) in get_tracefs_pipe() [all …]
|
| /linux/fs/autofs/ |
| H A D | expire.c | 29 static int autofs_mount_busy(struct vfsmount *mnt, in autofs_mount_busy() argument 33 struct path path = {.mnt = mnt, .dentry = dentry}; in autofs_mount_busy() 58 if (!may_umount_tree(path.mnt)) { in autofs_mount_busy() 147 static int autofs_direct_busy(struct vfsmount *mnt, in autofs_direct_busy() argument 159 if (!may_umount_tree(mnt)) { in autofs_direct_busy() 179 static int autofs_tree_busy(struct vfsmount *mnt, in autofs_tree_busy() argument 204 if (autofs_mount_busy(mnt, p, how)) { in autofs_tree_busy() 238 static struct dentry *autofs_check_leaves(struct vfsmount *mnt, in autofs_check_leaves() argument 253 if (autofs_mount_busy(mnt, p, how)) in autofs_check_leaves() 272 struct vfsmount *mnt, in autofs_expire_direct() argument [all …]
|
| /linux/security/tomoyo/ |
| H A D | tomoyo.c | 160 struct path path = { .mnt = parent->mnt, .dentry = dentry }; in tomoyo_path_unlink() 177 struct path path = { .mnt = parent->mnt, .dentry = dentry }; in tomoyo_path_mkdir() 193 struct path path = { .mnt = parent->mnt, .dentry = dentry }; in tomoyo_path_rmdir() 210 struct path path = { .mnt = parent->mnt, .dentry = dentry }; in tomoyo_path_symlink() 228 struct path path = { .mnt = parent->mnt, .dentry = dentry }; in tomoyo_path_mknod() 267 struct path path1 = { .mnt = new_dir->mnt, .dentry = old_dentry }; in tomoyo_path_link() 268 struct path path2 = { .mnt = new_dir->mnt, .dentry = new_dentry }; in tomoyo_path_link() 290 struct path path1 = { .mnt = old_parent->mnt, .dentry = old_dentry }; in tomoyo_path_rename() 291 struct path path2 = { .mnt = new_parent->mnt, .dentry = new_dentry }; in tomoyo_path_rename() 426 static int tomoyo_sb_umount(struct vfsmount *mnt, int flags) in tomoyo_sb_umount() argument [all …]
|
| /linux/fs/exportfs/ |
| H A D | expfs.c | 27 static int exportfs_get_name(struct vfsmount *mnt, struct dentry *dir, in exportfs_get_name() argument 31 struct path path = {.mnt = mnt, .dentry = dir}; in exportfs_get_name() 121 static struct dentry *reconnect_one(struct vfsmount *mnt, in reconnect_one() argument 129 if (mnt->mnt_sb->s_export_op->get_parent) in reconnect_one() 130 parent = mnt->mnt_sb->s_export_op->get_parent(dentry); in reconnect_one() 140 err = exportfs_get_name(mnt, parent, nbuf, dentry); in reconnect_one() 146 tmp = lookup_one_unlocked(mnt_idmap(mnt), &QSTR(nbuf), parent); in reconnect_one() 210 reconnect_path(struct vfsmount *mnt, struct dentry *target_dir, char *nbuf) in reconnect_path() argument 217 BUG_ON(dentry == mnt->mnt_sb->s_root); in reconnect_path() 220 parent = reconnect_one(mnt, dentry, nbuf); in reconnect_path() [all …]
|
| /linux/Documentation/target/ |
| H A D | tcm_mod_builder.rst | 32 …target:/mnt/sdb/lio-core-2.6.git/Documentation/target# python tcm_mod_builder.py -p iSCSI -m tcm_n… 33 tcm_dir: /mnt/sdb/lio-core-2.6.git/Documentation/target/../../ 36 /mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000 39 /mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000 41 /mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_base.h 43 /mnt/sdb/lio-core-2.6.git/Documentation/target/../../include/target/target_core_fabric_ops.h 45 …/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_fabric… 47 …/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_fabric… 49 …/mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/tcm_nab5000_config… 51 /mnt/sdb/lio-core-2.6.git/Documentation/target/../../drivers/target/tcm_nab5000/Kbuild [all …]
|
| /linux/tools/perf/util/ |
| H A D | cgroup.c | 34 char mnt[PATH_MAX + 1]; in open_cgroup() local 38 if (cgroupfs_find_mountpoint(mnt, PATH_MAX + 1, "perf_event")) in open_cgroup() 41 scnprintf(path, PATH_MAX, "%s/%s", mnt, name); in open_cgroup() 69 char mnt[PATH_MAX + 1]; in read_cgroup_id() local 71 if (cgroupfs_find_mountpoint(mnt, PATH_MAX + 1, "perf_event")) in read_cgroup_id() 74 scnprintf(path, PATH_MAX, "%s/%s", mnt, cgrp->name); in read_cgroup_id() 89 char mnt[PATH_MAX + 1]; in cgroup_is_v2() local 92 if (cgroupfs_find_mountpoint(mnt, PATH_MAX + 1, subsys)) in cgroup_is_v2() 95 if (statfs(mnt, &stbuf) < 0) in cgroup_is_v2() 302 char mnt[PATH_MAX]; in match_cgroups() local [all …]
|
| /linux/security/apparmor/ |
| H A D | mount.c | 93 if (ad->mnt.type) { in audit_cb() 95 audit_log_untrustedstring(ab, ad->mnt.type); in audit_cb() 97 if (ad->mnt.src_name) { in audit_cb() 99 audit_log_untrustedstring(ab, ad->mnt.src_name); in audit_cb() 101 if (ad->mnt.trans) { in audit_cb() 103 audit_log_untrustedstring(ab, ad->mnt.trans); in audit_cb() 105 if (ad->mnt.flags) { in audit_cb() 107 audit_mnt_flags(ab, ad->mnt.flags); in audit_cb() 110 if (ad->mnt.data) { in audit_cb() 112 audit_log_untrustedstring(ab, ad->mnt.data); in audit_cb() [all …]
|
| /linux/fs/cachefiles/ |
| H A D | cache.c | 44 cache->mnt = path.mnt; in cachefiles_add_cache() 48 if (is_idmapped_mnt(path.mnt)) { in cachefiles_add_cache() 167 mntput(cache->mnt); in cachefiles_add_cache() 168 cache->mnt = NULL; in cachefiles_add_cache() 194 .mnt = cache->mnt, in cachefiles_has_space() 195 .dentry = cache->mnt->mnt_root, in cachefiles_has_space() 395 down_read(&cache->mnt->mnt_sb->s_umount); in cachefiles_sync_cache() 396 ret = sync_filesystem(cache->mnt->mnt_sb); in cachefiles_sync_cache() 397 up_read(&cache->mnt->mnt_sb->s_umount); in cachefiles_sync_cache()
|
| /linux/fs/smb/client/ |
| H A D | namespace.c | 201 struct vfsmount *mnt; in cifs_do_automount() local 225 fc = fs_context_for_submount(path->mnt->mnt_sb->s_type, mntpt); in cifs_do_automount() 234 mnt = ERR_CAST(full_path); in cifs_do_automount() 247 mnt = ERR_PTR(rc); in cifs_do_automount() 253 mnt = ERR_PTR(rc); in cifs_do_automount() 259 mnt = ERR_CAST(ctx->source); in cifs_do_automount() 267 mnt = fc_mount(fc); in cifs_do_automount() 271 return mnt; in cifs_do_automount()
|
| /linux/fs/notify/ |
| H A D | fsnotify.c | 26 void __fsnotify_vfsmount_delete(struct vfsmount *mnt) in __fsnotify_vfsmount_delete() argument 28 fsnotify_clear_marks_by_mount(mnt); in __fsnotify_vfsmount_delete() 242 READ_ONCE(real_mount(path->mnt)->mnt_fsnotify_mask) : 0; in __fsnotify_parent() 549 struct mount *mnt = NULL; in fsnotify() local 557 mnt = real_mount(path->mnt); in fsnotify() 585 (!mnt || !mnt->mnt_fsnotify_marks) && in fsnotify() 593 if (mnt) in fsnotify() 594 marks_mask |= READ_ONCE(mnt->mnt_fsnotify_mask); in fsnotify() 618 if (mnt) { in fsnotify() 620 fsnotify_first_mark(&mnt->mnt_fsnotify_marks); in fsnotify() [all …]
|
| /linux/tools/testing/selftests/mm/ |
| H A D | charge_reserved_hugetlb.sh | 54 if [[ -e /mnt/huge ]]; then 55 rm -rf /mnt/huge/* 56 umount /mnt/huge || echo error 57 rmdir /mnt/huge 262 if [[ -e /mnt/huge ]]; then 263 rm -rf /mnt/huge/* 264 umount /mnt/huge 265 rmdir /mnt/huge 292 mkdir -p /mnt/huge 293 mount -t hugetlbfs -o pagesize=${MB}M,size=256M none /mnt/huge [all …]
|
| /linux/Documentation/filesystems/ |
| H A D | sharedsubtree.rst | 42 Let's say /mnt has a mount that is shared:: 44 # mount --make-shared /mnt 53 # mount --bind /mnt /tmp 55 The above command replicates the mount at /mnt to the mountpoint /tmp 60 #ls /mnt 73 # ls /mnt/a 76 Note that the mount has propagated to the mount at /mnt as well. 78 And the same is true even when /dev/sd0 is mounted on /mnt/a. The 89 Let's say /mnt has a mount which is shared:: 91 # mount --make-shared /mnt [all …]
|