Lines Matching refs:mnt

469 	mntget(path->mnt);  in path_get()
483 mntput(path->mnt); in path_put()
562 struct vfsmount *mnt = path->mnt; in path_connected() local
563 struct super_block *sb = mnt->mnt_sb; in path_connected()
566 if (!(sb->s_iflags & SB_I_MULTIROOT) && (mnt->mnt_root == sb->s_root)) in path_connected()
569 return is_subdir(path->dentry, mnt->mnt_root); in path_connected()
614 int res = __legitimize_mnt(path->mnt, nd->m_seq); in legitimize_path()
617 path->mnt = NULL; in legitimize_path()
644 if (!nd->root.mnt || (nd->flags & LOOKUP_ROOT)) in legitimize_root()
690 nd->path.mnt = NULL; in unlazy_walk()
717 if (unlikely(!legitimize_mnt(nd->path.mnt, nd->m_seq))) in unlazy_child()
743 nd->path.mnt = NULL; in unlazy_child()
780 nd->root.mnt = NULL; in complete_walk()
822 if (path->mnt != nd->path.mnt) in path_put_conditional()
823 mntput(path->mnt); in path_put_conditional()
831 if (nd->path.mnt != path->mnt) in path_to_nameidata()
832 mntput(nd->path.mnt); in path_to_nameidata()
834 nd->path.mnt = path->mnt; in path_to_nameidata()
1082 if (!nd->root.mnt) in get_link()
1106 struct mount *mnt = real_mount(path->mnt); in follow_up() local
1111 parent = mnt->mnt_parent; in follow_up()
1112 if (parent == mnt) { in follow_up()
1116 mntget(&parent->mnt); in follow_up()
1117 mountpoint = dget(mnt->mnt_mountpoint); in follow_up()
1121 mntput(path->mnt); in follow_up()
1122 path->mnt = &parent->mnt; in follow_up()
1135 struct vfsmount *mnt; in follow_automount() local
1161 mnt = path->dentry->d_op->d_automount(path); in follow_automount()
1162 if (IS_ERR(mnt)) { in follow_automount()
1172 if (PTR_ERR(mnt) == -EISDIR && (nd->flags & LOOKUP_PARENT)) in follow_automount()
1174 return PTR_ERR(mnt); in follow_automount()
1177 if (!mnt) /* mount collision */ in follow_automount()
1182 mntget(path->mnt); in follow_automount()
1185 err = finish_automount(mnt, path); in follow_automount()
1193 path->mnt = mnt; in follow_automount()
1194 path->dentry = dget(mnt->mnt_root); in follow_automount()
1214 struct vfsmount *mnt = path->mnt; /* held by caller, must be left alone */ in follow_managed() local
1241 mntput(path->mnt); in follow_managed()
1242 path->mnt = mounted; in follow_managed()
1266 if (need_mntput && path->mnt == mnt) in follow_managed()
1267 mntput(path->mnt); in follow_managed()
1284 mntput(path->mnt); in follow_down_one()
1285 path->mnt = mounted; in follow_down_one()
1325 mounted = __lookup_mnt(path->mnt, path->dentry); in __follow_mount_rcu()
1328 path->mnt = &mounted->mnt; in __follow_mount_rcu()
1329 path->dentry = mounted->mnt.mnt_root; in __follow_mount_rcu()
1350 if (nd->path.dentry != nd->path.mnt->mnt_root) { in follow_dotdot_rcu()
1365 struct mount *mnt = real_mount(nd->path.mnt); in follow_dotdot_rcu() local
1366 struct mount *mparent = mnt->mnt_parent; in follow_dotdot_rcu()
1367 struct dentry *mountpoint = mnt->mnt_mountpoint; in follow_dotdot_rcu()
1372 if (&mparent->mnt == nd->path.mnt) in follow_dotdot_rcu()
1376 nd->path.mnt = &mparent->mnt; in follow_dotdot_rcu()
1383 mounted = __lookup_mnt(nd->path.mnt, nd->path.dentry); in follow_dotdot_rcu()
1388 nd->path.mnt = &mounted->mnt; in follow_dotdot_rcu()
1389 nd->path.dentry = mounted->mnt.mnt_root; in follow_dotdot_rcu()
1433 mntput(path->mnt); in follow_down()
1434 path->mnt = mounted; in follow_down()
1456 mntput(path->mnt); in follow_mount()
1457 path->mnt = mounted; in follow_mount()
1478 if (nd->path.dentry != nd->path.mnt->mnt_root) { in follow_dotdot()
1550 struct vfsmount *mnt = nd->path.mnt; in lookup_fast() local
1598 path->mnt = mnt; in lookup_fast()
1625 path->mnt = mnt; in lookup_fast()
1700 if (!nd->root.mnt) in handle_dots()
1720 if (link->mnt == nd->path.mnt) in pick_link()
1721 mntget(link->mnt); in pick_link()
1730 nd->path.mnt = NULL; in pick_link()
1805 path.mnt = nd->path.mnt; in walk_component()
2191 nd->root.mnt = NULL; in path_init()
2192 nd->path.mnt = NULL; in path_init()
2319 nd->path.mnt = NULL; in path_lookupat()
2361 nd->path.mnt = NULL; in path_parentat()
2437 int vfs_path_lookup(struct dentry *dentry, struct vfsmount *mnt, in vfs_path_lookup() argument
2441 struct path root = {.mnt = mnt, .dentry = dentry}; in vfs_path_lookup()
2665 path.mnt = nd->path.mnt; in mountpoint_last()
2690 nd->path.mnt = NULL; in path_mountpoint()
2932 return !(path->mnt->mnt_flags & MNT_NODEV) && in may_open_dev()
2933 !(path->mnt->mnt_sb->s_iflags & SB_I_NODEV); in may_open_dev()
3061 file->f_path.mnt = nd->path.mnt; in atomic_open()
3093 path->mnt = nd->path.mnt; in atomic_open()
3236 path->mnt = nd->path.mnt; in lookup_open()
3301 error = mnt_want_write(nd->path.mnt); in do_last()
3347 mnt_drop_write(nd->path.mnt); in do_last()
3398 error = mnt_want_write(nd->path.mnt); in do_last()
3421 mnt_drop_write(nd->path.mnt); in do_last()
3473 error = mnt_want_write(path.mnt); in do_tmpfile()
3487 file->f_path.mnt = path.mnt; in do_tmpfile()
3490 mnt_drop_write(path.mnt); in do_tmpfile()
3564 struct file *do_file_open_root(struct dentry *dentry, struct vfsmount *mnt, in do_file_open_root() argument
3572 nd.root.mnt = mnt; in do_file_open_root()
3621 err2 = mnt_want_write(path->mnt); in filename_create()
3657 mnt_drop_write(path->mnt); in filename_create()
3676 mnt_drop_write(path->mnt); in done_path_create()
3916 error = mnt_want_write(path.mnt); in do_rmdir()
3937 mnt_drop_write(path.mnt); in do_rmdir()
4037 error = mnt_want_write(path.mnt); in do_unlinkat()
4068 mnt_drop_write(path.mnt); in do_unlinkat()
4293 if (old_path.mnt != new_path.mnt) in do_linkat()
4552 if (old_path.mnt != new_path.mnt) in do_renameat2()
4564 error = mnt_want_write(old_path.mnt); in do_renameat2()
4633 mnt_drop_write(old_path.mnt); in do_renameat2()