Lines Matching refs:mnt

477 	mntget(path->mnt);  in path_get()
491 mntput(path->mnt); in path_put()
572 struct vfsmount *mnt = path->mnt; in path_connected() local
575 if (mnt->mnt_root == mnt->mnt_sb->s_root) in path_connected()
578 return is_subdir(path->dentry, mnt->mnt_root); in path_connected()
611 if (nd->root.mnt && !(nd->flags & LOOKUP_ROOT)) { in terminate_walk()
613 nd->root.mnt = NULL; in terminate_walk()
618 nd->root.mnt = NULL; in terminate_walk()
628 int res = __legitimize_mnt(path->mnt, nd->m_seq); in legitimize_path()
631 path->mnt = NULL; in legitimize_path()
689 if (unlikely(!legitimize_mnt(nd->path.mnt, nd->m_seq))) in unlazy_walk()
720 if (nd->root.mnt && !(nd->flags & LOOKUP_ROOT)) { in unlazy_walk()
736 nd->path.mnt = NULL; in unlazy_walk()
743 nd->root.mnt = NULL; in unlazy_walk()
753 nd->path.mnt = NULL; in unlazy_link()
756 nd->root.mnt = NULL; in unlazy_link()
787 nd->root.mnt = NULL; in complete_walk()
828 if (path->mnt != nd->path.mnt) in path_put_conditional()
829 mntput(path->mnt); in path_put_conditional()
837 if (nd->path.mnt != path->mnt) in path_to_nameidata()
838 mntput(nd->path.mnt); in path_to_nameidata()
840 nd->path.mnt = path->mnt; in path_to_nameidata()
1020 if (!nd->root.mnt) in get_link()
1029 if (!nd->root.mnt) in get_link()
1057 struct mount *mnt = real_mount(path->mnt); in follow_up() local
1062 parent = mnt->mnt_parent; in follow_up()
1063 if (parent == mnt) { in follow_up()
1067 mntget(&parent->mnt); in follow_up()
1068 mountpoint = dget(mnt->mnt_mountpoint); in follow_up()
1072 mntput(path->mnt); in follow_up()
1073 path->mnt = &parent->mnt; in follow_up()
1086 struct vfsmount *mnt; in follow_automount() local
1112 mnt = path->dentry->d_op->d_automount(path); in follow_automount()
1113 if (IS_ERR(mnt)) { in follow_automount()
1123 if (PTR_ERR(mnt) == -EISDIR && (nd->flags & LOOKUP_PARENT)) in follow_automount()
1125 return PTR_ERR(mnt); in follow_automount()
1128 if (!mnt) /* mount collision */ in follow_automount()
1133 mntget(path->mnt); in follow_automount()
1136 err = finish_automount(mnt, path); in follow_automount()
1144 path->mnt = mnt; in follow_automount()
1145 path->dentry = dget(mnt->mnt_root); in follow_automount()
1165 struct vfsmount *mnt = path->mnt; /* held by caller, must be left alone */ in follow_managed() local
1192 mntput(path->mnt); in follow_managed()
1193 path->mnt = mounted; in follow_managed()
1217 if (need_mntput && path->mnt == mnt) in follow_managed()
1218 mntput(path->mnt); in follow_managed()
1235 mntput(path->mnt); in follow_down_one()
1236 path->mnt = mounted; in follow_down_one()
1276 mounted = __lookup_mnt(path->mnt, path->dentry); in __follow_mount_rcu()
1279 path->mnt = &mounted->mnt; in __follow_mount_rcu()
1280 path->dentry = mounted->mnt.mnt_root; in __follow_mount_rcu()
1297 if (!nd->root.mnt) in follow_dotdot_rcu()
1303 if (nd->path.dentry != nd->path.mnt->mnt_root) { in follow_dotdot_rcu()
1318 struct mount *mnt = real_mount(nd->path.mnt); in follow_dotdot_rcu() local
1319 struct mount *mparent = mnt->mnt_parent; in follow_dotdot_rcu()
1320 struct dentry *mountpoint = mnt->mnt_mountpoint; in follow_dotdot_rcu()
1325 if (&mparent->mnt == nd->path.mnt) in follow_dotdot_rcu()
1329 nd->path.mnt = &mparent->mnt; in follow_dotdot_rcu()
1336 mounted = __lookup_mnt(nd->path.mnt, nd->path.dentry); in follow_dotdot_rcu()
1341 nd->path.mnt = &mounted->mnt; in follow_dotdot_rcu()
1342 nd->path.dentry = mounted->mnt.mnt_root; in follow_dotdot_rcu()
1387 mntput(path->mnt); in follow_down()
1388 path->mnt = mounted; in follow_down()
1410 mntput(path->mnt); in follow_mount()
1411 path->mnt = mounted; in follow_mount()
1418 if (!nd->root.mnt) in follow_dotdot()
1425 nd->path.mnt == nd->root.mnt) { in follow_dotdot()
1428 if (nd->path.dentry != nd->path.mnt->mnt_root) { in follow_dotdot()
1532 struct vfsmount *mnt = nd->path.mnt; in lookup_fast() local
1584 path->mnt = mnt; in lookup_fast()
1614 path->mnt = mnt; in lookup_fast()
1638 path->mnt = nd->path.mnt; in lookup_slow()
1676 if (link->mnt == nd->path.mnt) in pick_link()
1677 mntget(link->mnt); in pick_link()
2027 nd->root.mnt = NULL; in path_init()
2091 nd->root.mnt = NULL; in path_init()
2146 nd->path.mnt = NULL; in path_lookupat()
2191 nd->path.mnt = NULL; in path_parentat()
2267 int vfs_path_lookup(struct dentry *dentry, struct vfsmount *mnt, in vfs_path_lookup() argument
2271 struct path root = {.mnt = mnt, .dentry = dentry}; in vfs_path_lookup()
2434 path->mnt = nd->path.mnt; in mountpoint_last()
2439 mntget(path->mnt); in mountpoint_last()
2693 if (path->mnt->mnt_flags & MNT_NODEV) in may_open()
2851 file->f_path.mnt = nd->path.mnt; in atomic_open()
2916 path->mnt = nd->path.mnt; in atomic_open()
2998 path->mnt = nd->path.mnt; in lookup_open()
3020 struct path save_parent = { .dentry = NULL, .mnt = NULL }; in do_last()
3066 error = mnt_want_write(nd->path.mnt); in do_last()
3112 mnt_drop_write(nd->path.mnt); in do_last()
3140 if ((nd->flags & LOOKUP_RCU) || nd->path.mnt != path.mnt) { in do_last()
3144 save_parent.mnt = mntget(path.mnt); in do_last()
3172 error = mnt_want_write(nd->path.mnt); in do_last()
3210 mnt_drop_write(nd->path.mnt); in do_last()
3227 save_parent.mnt = NULL; in do_last()
3230 mnt_drop_write(nd->path.mnt); in do_last()
3248 error = mnt_want_write(path.mnt); in do_tmpfile()
3275 file->f_path.mnt = path.mnt; in do_tmpfile()
3289 mnt_drop_write(path.mnt); in do_tmpfile()
3363 struct file *do_file_open_root(struct dentry *dentry, struct vfsmount *mnt, in do_file_open_root() argument
3371 nd.root.mnt = mnt; in do_file_open_root()
3420 err2 = mnt_want_write(path->mnt); in filename_create()
3456 mnt_drop_write(path->mnt); in filename_create()
3475 mnt_drop_write(path->mnt); in done_path_create()
3726 error = mnt_want_write(path.mnt); in do_rmdir()
3747 mnt_drop_write(path.mnt); in do_rmdir()
3848 error = mnt_want_write(path.mnt); in do_unlinkat()
3879 mnt_drop_write(path.mnt); in do_unlinkat()
4091 if (old_path.mnt != new_path.mnt) in SYSCALL_DEFINE5()
4356 if (old_path.mnt != new_path.mnt) in SYSCALL_DEFINE5()
4368 error = mnt_want_write(old_path.mnt); in SYSCALL_DEFINE5()
4437 mnt_drop_write(old_path.mnt); in SYSCALL_DEFINE5()