Lines Matching refs:flags

136 getname_flags(const char __user *filename, int flags)  in getname_flags()  argument
168 if (!(flags & LOOKUP_EMPTY)) { in getname_flags()
202 if (unlikely(!len) && !(flags & LOOKUP_EMPTY)) { in getname_flags()
220 int flags = (uflags & AT_EMPTY_PATH) ? LOOKUP_EMPTY : 0; in getname_uflags() local
222 return getname_flags(filename, flags); in getname_uflags()
637 unsigned int flags, state; member
703 nd->flags & LOOKUP_RCU ? GFP_ATOMIC : GFP_KERNEL); in nd_alloc_stack()
742 nd->flags &= ~LOOKUP_RCU; in leave_rcu()
750 if (!(nd->flags & LOOKUP_RCU)) { in terminate_walk()
793 if (unlikely(nd->flags & LOOKUP_CACHED)) { in legitimize_links()
844 BUG_ON(!(nd->flags & LOOKUP_RCU)); in try_to_unlazy()
879 BUG_ON(!(nd->flags & LOOKUP_RCU)); in try_to_unlazy_next()
926 struct dentry *dentry, unsigned int flags) in d_revalidate() argument
929 return dentry->d_op->d_revalidate(dir, name, dentry, flags); in d_revalidate()
949 if (nd->flags & LOOKUP_RCU) { in complete_walk()
955 if (!(nd->flags & LOOKUP_IS_SCOPED)) in complete_walk()
957 nd->flags &= ~LOOKUP_CACHED; in complete_walk()
962 if (unlikely(nd->flags & LOOKUP_IS_SCOPED)) { in complete_walk()
989 status = dentry->d_op->d_weak_revalidate(dentry, nd->flags); in complete_walk()
1008 if (WARN_ON(nd->flags & LOOKUP_IS_SCOPED)) in set_root()
1011 if (nd->flags & LOOKUP_RCU) { in set_root()
1028 if (unlikely(nd->flags & LOOKUP_BENEATH)) in nd_jump_root()
1030 if (unlikely(nd->flags & LOOKUP_NO_XDEV)) { in nd_jump_root()
1040 if (nd->flags & LOOKUP_RCU) { in nd_jump_root()
1067 if (unlikely(nd->flags & LOOKUP_NO_MAGICLINKS)) in nd_jump_link()
1071 if (unlikely(nd->flags & LOOKUP_NO_XDEV)) { in nd_jump_link()
1076 if (unlikely(nd->flags & LOOKUP_IS_SCOPED)) in nd_jump_link()
1094 if (!(nd->flags & LOOKUP_RCU)) in put_link()
1190 if (nd->flags & LOOKUP_RCU) in may_follow_link()
1464 static int __traverse_mounts(struct path *path, unsigned flags, bool *jumped, in __traverse_mounts() argument
1471 while (flags & DCACHE_MANAGED_DENTRY) { in __traverse_mounts()
1474 if (flags & DCACHE_MANAGE_TRANSIT) { in __traverse_mounts()
1476 flags = smp_load_acquire(&path->dentry->d_flags); in __traverse_mounts()
1481 if (flags & DCACHE_MOUNTED) { // something's mounted on it.. in __traverse_mounts()
1490 flags = path->dentry->d_flags; in __traverse_mounts()
1496 if (!(flags & DCACHE_NEED_AUTOMOUNT)) in __traverse_mounts()
1501 flags = smp_load_acquire(&path->dentry->d_flags); in __traverse_mounts()
1511 if (!ret && unlikely(d_flags_negative(flags))) in __traverse_mounts()
1520 unsigned flags = smp_load_acquire(&path->dentry->d_flags); in traverse_mounts() local
1523 if (likely(!(flags & DCACHE_MANAGED_DENTRY))) { in traverse_mounts()
1525 if (unlikely(d_flags_negative(flags))) in traverse_mounts()
1529 return __traverse_mounts(path, flags, jumped, count, lookup_flags); in traverse_mounts()
1553 int follow_down(struct path *path, unsigned int flags) in follow_down() argument
1557 int ret = traverse_mounts(path, &jumped, NULL, flags); in follow_down()
1572 unsigned int flags = dentry->d_flags; in __follow_mount_rcu() local
1574 if (likely(!(flags & DCACHE_MANAGED_DENTRY))) in __follow_mount_rcu()
1577 if (unlikely(nd->flags & LOOKUP_NO_XDEV)) in __follow_mount_rcu()
1585 if (unlikely(flags & DCACHE_MANAGE_TRANSIT)) { in __follow_mount_rcu()
1589 flags = dentry->d_flags; in __follow_mount_rcu()
1592 if (flags & DCACHE_MOUNTED) { in __follow_mount_rcu()
1599 flags = dentry->d_flags; in __follow_mount_rcu()
1609 return !(flags & DCACHE_NEED_AUTOMOUNT); in __follow_mount_rcu()
1621 if (nd->flags & LOOKUP_RCU) { in handle_mounts()
1632 ret = traverse_mounts(path, &jumped, &nd->total_link_count, nd->flags); in handle_mounts()
1634 if (unlikely(nd->flags & LOOKUP_NO_XDEV)) in handle_mounts()
1653 unsigned int flags) in lookup_dcache() argument
1657 int error = d_revalidate(dir->d_inode, name, dentry, flags); in lookup_dcache()
1678 struct dentry *base, unsigned int flags) in lookup_one_qstr_excl() argument
1684 dentry = lookup_dcache(name, base, flags); in lookup_one_qstr_excl()
1697 old = dir->i_op->lookup(dir, dentry, flags); in lookup_one_qstr_excl()
1705 if (d_is_negative(dentry) && !(flags & LOOKUP_CREATE)) { in lookup_one_qstr_excl()
1709 if (d_is_positive(dentry) && (flags & LOOKUP_EXCL)) { in lookup_one_qstr_excl()
1741 if (nd->flags & LOOKUP_RCU) { in lookup_fast()
1756 status = d_revalidate(nd->inode, &nd->last, dentry, nd->flags); in lookup_fast()
1764 dentry, nd->flags); in lookup_fast()
1769 status = d_revalidate(nd->inode, &nd->last, dentry, nd->flags); in lookup_fast()
1783 unsigned int flags) in __lookup_slow() argument
1797 int error = d_revalidate(inode, name, dentry, flags); in __lookup_slow()
1808 old = inode->i_op->lookup(inode, dentry, flags); in __lookup_slow()
1820 unsigned int flags) in lookup_slow() argument
1825 res = __lookup_slow(name, dir, flags); in lookup_slow()
1835 mask = nd->flags & LOOKUP_RCU ? MAY_NOT_BLOCK : 0; in may_lookup()
1841 if (!(nd->flags & LOOKUP_RCU)) in may_lookup()
1866 if (nd->flags & LOOKUP_RCU) { in reserve_stack()
1883 struct inode *inode, int flags) in pick_link() argument
1890 if (!(nd->flags & LOOKUP_RCU)) in pick_link()
1899 if (flags & WALK_TRAILING) { in pick_link()
1905 if (unlikely(nd->flags & LOOKUP_NO_SYMLINKS) || in pick_link()
1910 if (nd->flags & LOOKUP_RCU) { in pick_link()
1919 nd->flags & LOOKUP_RCU); in pick_link()
1928 if (nd->flags & LOOKUP_RCU) { in pick_link()
1962 static const char *step_into(struct nameidata *nd, int flags, in step_into() argument
1973 ((flags & WALK_TRAILING) && !(nd->flags & LOOKUP_FOLLOW)) || in step_into()
1974 (flags & WALK_NOFOLLOW)) { in step_into()
1976 if (nd->flags & LOOKUP_RCU) { in step_into()
1991 if (nd->flags & LOOKUP_RCU) { in step_into()
1999 return pick_link(nd, &path, inode, flags); in step_into()
2014 if (unlikely(nd->flags & LOOKUP_NO_XDEV)) in follow_dotdot_rcu()
2036 if (unlikely(nd->flags & LOOKUP_BENEATH)) in follow_dotdot_rcu()
2057 if (unlikely(nd->flags & LOOKUP_NO_XDEV)) in follow_dotdot()
2069 if (unlikely(nd->flags & LOOKUP_BENEATH)) in follow_dotdot()
2085 if (nd->flags & LOOKUP_RCU) in handle_dots()
2095 if (unlikely(nd->flags & LOOKUP_IS_SCOPED)) { in handle_dots()
2112 static const char *walk_component(struct nameidata *nd, int flags) in walk_component() argument
2121 if (!(flags & WALK_MORE) && nd->depth) in walk_component()
2129 dentry = lookup_slow(&nd->last, nd->path.dentry, nd->flags); in walk_component()
2133 if (!(flags & WALK_MORE) && nd->depth) in walk_component()
2135 return step_into(nd, flags, dentry); in walk_component()
2425 nd->flags |= LOOKUP_PARENT; in link_path_walk()
2489 nd->flags &= ~LOOKUP_PARENT; in link_path_walk()
2508 if (nd->flags & LOOKUP_RCU) { in link_path_walk()
2518 static const char *path_init(struct nameidata *nd, unsigned flags) in path_init() argument
2524 if ((flags & (LOOKUP_RCU | LOOKUP_CACHED)) == LOOKUP_CACHED) in path_init()
2528 flags &= ~LOOKUP_RCU; in path_init()
2529 if (flags & LOOKUP_RCU) in path_init()
2534 nd->flags = flags; in path_init()
2548 if (flags & LOOKUP_RCU) { in path_init()
2560 if (*s == '/' && !(flags & LOOKUP_IN_ROOT)) { in path_init()
2569 if (flags & LOOKUP_RCU) { in path_init()
2591 if (flags & LOOKUP_LINKAT_EMPTY) { in path_init()
2603 if (flags & LOOKUP_RCU) { in path_init()
2613 if (flags & LOOKUP_IS_SCOPED) { in path_init()
2615 if (flags & LOOKUP_RCU) { in path_init()
2628 nd->flags |= LOOKUP_FOLLOW | LOOKUP_DIRECTORY; in lookup_last()
2635 if (!(nd->flags & LOOKUP_RCU)) in handle_lookup_down()
2642 static int path_lookupat(struct nameidata *nd, unsigned flags, struct path *path) in path_lookupat() argument
2644 const char *s = path_init(nd, flags); in path_lookupat()
2647 if (unlikely(flags & LOOKUP_DOWN) && !IS_ERR(s)) { in path_lookupat()
2656 if (!err && unlikely(nd->flags & LOOKUP_MOUNTPOINT)) { in path_lookupat()
2663 if (!err && nd->flags & LOOKUP_DIRECTORY) in path_lookupat()
2675 int filename_lookup(int dfd, struct filename *name, unsigned flags, in filename_lookup() argument
2683 retval = path_lookupat(&nd, flags | LOOKUP_RCU, path); in filename_lookup()
2685 retval = path_lookupat(&nd, flags, path); in filename_lookup()
2687 retval = path_lookupat(&nd, flags | LOOKUP_REVAL, path); in filename_lookup()
2691 flags & LOOKUP_MOUNTPOINT ? AUDIT_INODE_NOEVAL : 0); in filename_lookup()
2697 static int path_parentat(struct nameidata *nd, unsigned flags, in path_parentat() argument
2700 const char *s = path_init(nd, flags); in path_parentat()
2715 unsigned int flags, struct path *parent, in __filename_parentat() argument
2725 retval = path_parentat(&nd, flags | LOOKUP_RCU, parent); in __filename_parentat()
2727 retval = path_parentat(&nd, flags, parent); in __filename_parentat()
2729 retval = path_parentat(&nd, flags | LOOKUP_REVAL, parent); in __filename_parentat()
2740 unsigned int flags, struct path *parent, in filename_parentat() argument
2743 return __filename_parentat(dfd, name, flags, parent, last, type, NULL); in filename_parentat()
2813 int kern_path(const char *name, unsigned int flags, struct path *path) in kern_path() argument
2816 int ret = filename_lookup(AT_FDCWD, filename, flags, path, NULL); in kern_path()
2833 int vfs_path_parent_lookup(struct filename *filename, unsigned int flags, in vfs_path_parent_lookup() argument
2837 return __filename_parentat(AT_FDCWD, filename, flags, parent, last, in vfs_path_parent_lookup()
2851 const char *name, unsigned int flags, in vfs_path_lookup() argument
2860 ret = filename_lookup(AT_FDCWD, filename, flags, path, &root); in vfs_path_lookup()
3123 int user_path_at(int dfd, const char __user *name, unsigned flags, in user_path_at() argument
3126 struct filename *filename = getname_flags(name, flags); in user_path_at()
3127 int ret = filename_lookup(dfd, filename, flags, path, NULL); in user_path_at()
3563 if (nd->flags & LOOKUP_DIRECTORY) in atomic_open()
3637 error = d_revalidate(dir_inode, &nd->last, dentry, nd->flags); in lookup_open()
3687 nd->flags); in lookup_open()
3743 nd->flags |= LOOKUP_FOLLOW | LOOKUP_DIRECTORY; in lookup_fast_for_open()
3752 if (!(nd->flags & LOOKUP_RCU)) in lookup_fast_for_open()
3769 nd->flags |= op->intent; in open_last_lookups()
3786 if (WARN_ON_ONCE(nd->flags & LOOKUP_RCU)) in open_last_lookups()
3789 if (nd->flags & LOOKUP_RCU) { in open_last_lookups()
3836 nd->flags &= ~(LOOKUP_OPEN|LOOKUP_CREATE|LOOKUP_EXCL); in open_last_lookups()
3870 if ((nd->flags & LOOKUP_DIRECTORY) && !d_can_lookup(nd->path.dentry)) in do_open()
3991 static int do_tmpfile(struct nameidata *nd, unsigned flags, in do_tmpfile() argument
3996 int error = path_lookupat(nd, flags | LOOKUP_DIRECTORY, &path); in do_tmpfile()
4014 static int do_o_path(struct nameidata *nd, unsigned flags, struct file *file) in do_o_path() argument
4017 int error = path_lookupat(nd, flags, &path); in do_o_path()
4027 const struct open_flags *op, unsigned flags) in path_openat() argument
4037 error = do_tmpfile(nd, flags, op, file); in path_openat()
4039 error = do_o_path(nd, flags, file); in path_openat()
4041 const char *s = path_init(nd, flags); in path_openat()
4057 if (flags & LOOKUP_RCU) in path_openat()
4069 int flags = op->lookup_flags; in do_filp_open() local
4073 filp = path_openat(&nd, op, flags | LOOKUP_RCU); in do_filp_open()
4075 filp = path_openat(&nd, op, flags); in do_filp_open()
4077 filp = path_openat(&nd, op, flags | LOOKUP_REVAL); in do_filp_open()
4088 int flags = op->lookup_flags; in do_file_open_root() local
4098 file = path_openat(&nd, op, flags | LOOKUP_RCU); in do_file_open_root()
4100 file = path_openat(&nd, op, flags); in do_file_open_root()
4102 file = path_openat(&nd, op, flags | LOOKUP_REVAL); in do_file_open_root()
4879 struct filename *new, int flags) in do_linkat() argument
4888 if ((flags & ~(AT_SYMLINK_FOLLOW | AT_EMPTY_PATH)) != 0) { in do_linkat()
4898 if (flags & AT_EMPTY_PATH) in do_linkat()
4901 if (flags & AT_SYMLINK_FOLLOW) in do_linkat()
4950 int, newdfd, const char __user *, newname, int, flags) in SYSCALL_DEFINE5() argument
4952 return do_linkat(olddfd, getname_uflags(oldname, flags), in SYSCALL_DEFINE5()
4953 newdfd, getname(newname), flags); in SYSCALL_DEFINE5()
5015 unsigned int flags = rd->flags; in vfs_rename() local
5036 if (!(flags & RENAME_EXCHANGE)) in vfs_rename()
5060 if ((flags & RENAME_EXCHANGE) && new_is_dir) { in vfs_rename()
5069 flags); in vfs_rename()
5089 lock_new_subdir = new_dir != old_dir || !(flags & RENAME_EXCHANGE); in vfs_rename()
5115 if ((flags & RENAME_EXCHANGE) && !is_dir && new_is_dir && in vfs_rename()
5130 new_dir, new_dentry, flags); in vfs_rename()
5134 if (!(flags & RENAME_EXCHANGE) && target) { in vfs_rename()
5143 if (!(flags & RENAME_EXCHANGE)) in vfs_rename()
5156 !(flags & RENAME_EXCHANGE) ? target : NULL, old_dentry); in vfs_rename()
5157 if (flags & RENAME_EXCHANGE) { in vfs_rename()
5169 struct filename *to, unsigned int flags) in do_renameat2() argument
5183 if (flags & ~(RENAME_NOREPLACE | RENAME_EXCHANGE | RENAME_WHITEOUT)) in do_renameat2()
5186 if ((flags & (RENAME_NOREPLACE | RENAME_WHITEOUT)) && in do_renameat2()
5187 (flags & RENAME_EXCHANGE)) in do_renameat2()
5190 if (flags & RENAME_EXCHANGE) in do_renameat2()
5192 if (flags & RENAME_NOREPLACE) in do_renameat2()
5214 if (flags & RENAME_NOREPLACE) in do_renameat2()
5240 if (flags & RENAME_EXCHANGE) { in do_renameat2()
5252 if (!(flags & RENAME_EXCHANGE) && new_last.name[new_last.len]) in do_renameat2()
5260 if (!(flags & RENAME_EXCHANGE)) in do_renameat2()
5266 &new_path, new_dentry, flags); in do_renameat2()
5277 rd.flags = flags; in do_renameat2()
5310 int, newdfd, const char __user *, newname, unsigned int, flags) in SYSCALL_DEFINE5() argument
5313 flags); in SYSCALL_DEFINE5()
5507 unsigned int flags; in page_symlink() local
5511 flags = memalloc_nofs_save(); in page_symlink()
5514 memalloc_nofs_restore(flags); in page_symlink()