Lines Matching refs:flags
131 getname_flags(const char __user *filename, int flags, int *empty) in getname_flags() argument
197 if (!(flags & LOOKUP_EMPTY)) { in getname_flags()
506 unsigned int flags; member
550 if (nd->flags & LOOKUP_RCU) { in __nd_alloc_stack()
607 if (!(nd->flags & LOOKUP_RCU)) { in terminate_walk()
612 if (nd->flags & LOOKUP_ROOT_GRABBED) { in terminate_walk()
614 nd->flags &= ~LOOKUP_ROOT_GRABBED; in terminate_walk()
617 nd->flags &= ~LOOKUP_RCU; in terminate_walk()
657 if (!nd->root.mnt || (nd->flags & LOOKUP_ROOT)) in legitimize_root()
659 nd->flags |= LOOKUP_ROOT_GRABBED; in legitimize_root()
689 BUG_ON(!(nd->flags & LOOKUP_RCU)); in unlazy_walk()
691 nd->flags &= ~LOOKUP_RCU; in unlazy_walk()
725 BUG_ON(!(nd->flags & LOOKUP_RCU)); in unlazy_child()
727 nd->flags &= ~LOOKUP_RCU; in unlazy_child()
768 static inline int d_revalidate(struct dentry *dentry, unsigned int flags) in d_revalidate() argument
771 return dentry->d_op->d_revalidate(dentry, flags); in d_revalidate()
866 if (nd->flags & LOOKUP_RCU) { in complete_walk()
867 if (!(nd->flags & LOOKUP_ROOT)) in complete_walk()
873 if (likely(!(nd->flags & LOOKUP_JUMPED))) { in complete_walk()
883 status = dentry->d_op->d_weak_revalidate(dentry, nd->flags); in complete_walk()
899 if (nd->flags & LOOKUP_RCU) { in set_root()
909 nd->flags |= LOOKUP_ROOT_GRABBED; in set_root()
923 if (!(nd->flags & LOOKUP_RCU)) { in path_to_nameidata()
934 if (nd->flags & LOOKUP_RCU) { in nd_jump_root()
948 nd->flags |= LOOKUP_JUMPED; in nd_jump_root()
963 nd->flags |= LOOKUP_JUMPED; in nd_jump_link()
970 if (!(nd->flags & LOOKUP_RCU)) in put_link()
1018 if (nd->flags & LOOKUP_RCU) in may_follow_link()
1143 if (!(nd->flags & LOOKUP_RCU)) { in get_link()
1153 nd->flags & LOOKUP_RCU); in get_link()
1163 if (nd->flags & LOOKUP_RCU) { in get_link()
1247 if (!(nd->flags & (LOOKUP_PARENT | LOOKUP_DIRECTORY | in follow_automount()
1267 if (PTR_ERR(mnt) == -EISDIR && (nd->flags & LOOKUP_PARENT)) in follow_automount()
1366 nd->flags |= LOOKUP_JUMPED; in follow_managed()
1425 nd->flags |= LOOKUP_JUMPED; in __follow_mount_rcu()
1593 unsigned int flags) in lookup_dcache() argument
1597 int error = d_revalidate(dentry, flags); in lookup_dcache()
1616 struct dentry *base, unsigned int flags) in __lookup_hash() argument
1618 struct dentry *dentry = lookup_dcache(name, base, flags); in __lookup_hash()
1633 old = dir->i_op->lookup(dir, dentry, flags); in __lookup_hash()
1655 if (nd->flags & LOOKUP_RCU) { in lookup_fast()
1685 status = d_revalidate(dentry, nd->flags); in lookup_fast()
1702 status = d_revalidate(dentry, nd->flags); in lookup_fast()
1707 status = d_revalidate(dentry, nd->flags); in lookup_fast()
1731 unsigned int flags) in __lookup_slow() argument
1745 if (!(flags & LOOKUP_NO_REVAL)) { in __lookup_slow()
1746 int error = d_revalidate(dentry, flags); in __lookup_slow()
1758 old = inode->i_op->lookup(inode, dentry, flags); in __lookup_slow()
1770 unsigned int flags) in lookup_slow() argument
1775 res = __lookup_slow(name, dir, flags); in lookup_slow()
1782 if (nd->flags & LOOKUP_RCU) { in may_lookup()
1797 if (nd->flags & LOOKUP_RCU) { in handle_dots()
1814 if (!(nd->flags & LOOKUP_RCU)) { in pick_link()
1824 nd->flags &= ~LOOKUP_RCU; in pick_link()
1854 int flags, struct inode *inode, unsigned seq) in step_into() argument
1856 if (!(flags & WALK_MORE) && nd->depth) in step_into()
1859 !(flags & WALK_FOLLOW || nd->flags & LOOKUP_FOLLOW)) { in step_into()
1867 if (nd->flags & LOOKUP_RCU) { in step_into()
1874 static int walk_component(struct nameidata *nd, int flags) in walk_component() argument
1887 if (!(flags & WALK_MORE) && nd->depth) in walk_component()
1896 nd->flags); in walk_component()
1914 return step_into(nd, &path, flags, inode, seq); in walk_component()
2180 nd->flags |= LOOKUP_JUMPED; in link_path_walk()
2188 nd->flags &= ~LOOKUP_JUMPED; in link_path_walk()
2247 if (nd->flags & LOOKUP_RCU) { in link_path_walk()
2257 static const char *path_init(struct nameidata *nd, unsigned flags) in path_init() argument
2262 flags &= ~LOOKUP_RCU; in path_init()
2263 if (flags & LOOKUP_RCU) in path_init()
2267 nd->flags = flags | LOOKUP_JUMPED | LOOKUP_PARENT; in path_init()
2269 if (flags & LOOKUP_ROOT) { in path_init()
2276 if (flags & LOOKUP_RCU) { in path_init()
2297 if (flags & LOOKUP_RCU) { in path_init()
2328 if (flags & LOOKUP_RCU) { in path_init()
2346 nd->flags |= LOOKUP_PARENT; in trailing_symlink()
2355 nd->flags |= LOOKUP_FOLLOW | LOOKUP_DIRECTORY; in lookup_last()
2357 nd->flags &= ~LOOKUP_PARENT; in lookup_last()
2368 if (nd->flags & LOOKUP_RCU) { in handle_lookup_down()
2391 static int path_lookupat(struct nameidata *nd, unsigned flags, struct path *path) in path_lookupat() argument
2393 const char *s = path_init(nd, flags); in path_lookupat()
2396 if (unlikely(flags & LOOKUP_DOWN) && !IS_ERR(s)) { in path_lookupat()
2409 if (!err && nd->flags & LOOKUP_DIRECTORY) in path_lookupat()
2421 int filename_lookup(int dfd, struct filename *name, unsigned flags, in filename_lookup() argument
2430 flags |= LOOKUP_ROOT; in filename_lookup()
2433 retval = path_lookupat(&nd, flags | LOOKUP_RCU, path); in filename_lookup()
2435 retval = path_lookupat(&nd, flags, path); in filename_lookup()
2437 retval = path_lookupat(&nd, flags | LOOKUP_REVAL, path); in filename_lookup()
2447 static int path_parentat(struct nameidata *nd, unsigned flags, in path_parentat() argument
2450 const char *s = path_init(nd, flags); in path_parentat()
2464 unsigned int flags, struct path *parent, in filename_parentat() argument
2473 retval = path_parentat(&nd, flags | LOOKUP_RCU, parent); in filename_parentat()
2475 retval = path_parentat(&nd, flags, parent); in filename_parentat()
2477 retval = path_parentat(&nd, flags | LOOKUP_REVAL, parent); in filename_parentat()
2517 int kern_path(const char *name, unsigned int flags, struct path *path) in kern_path() argument
2520 flags, path, NULL); in kern_path()
2533 const char *name, unsigned int flags, in vfs_path_lookup() argument
2539 flags , path, &root); in vfs_path_lookup()
2696 int user_path_at_empty(int dfd, const char __user *name, unsigned flags, in user_path_at_empty() argument
2699 return filename_lookup(dfd, getname_flags(name, flags, empty), in user_path_at_empty()
2700 flags, path, NULL); in user_path_at_empty()
2735 if (nd->flags & LOOKUP_RCU) { in mountpoint_last()
2740 nd->flags &= ~LOOKUP_PARENT; in mountpoint_last()
2757 nd->flags | LOOKUP_NO_REVAL); in mountpoint_last()
2780 path_mountpoint(struct nameidata *nd, unsigned flags, struct path *path) in path_mountpoint() argument
2782 const char *s = path_init(nd, flags); in path_mountpoint()
2801 unsigned int flags) in filename_mountpoint() argument
2808 error = path_mountpoint(&nd, flags | LOOKUP_RCU, path); in filename_mountpoint()
2810 error = path_mountpoint(&nd, flags, path); in filename_mountpoint()
2812 error = path_mountpoint(&nd, flags | LOOKUP_REVAL, path); in filename_mountpoint()
2835 user_path_mountpoint_at(int dfd, const char __user *name, unsigned int flags, in user_path_mountpoint_at() argument
2838 return filename_mountpoint(dfd, getname(name), path, flags); in user_path_mountpoint_at()
2843 unsigned int flags) in kern_path_mountpoint() argument
2845 return filename_mountpoint(dfd, getname_kernel(name), path, flags); in kern_path_mountpoint()
3175 if (nd->flags & LOOKUP_DIRECTORY) in atomic_open()
3262 error = d_revalidate(dentry, nd->flags); in lookup_open()
3322 nd->flags); in lookup_open()
3380 nd->flags &= ~LOOKUP_PARENT; in do_last()
3381 nd->flags |= op->intent; in do_last()
3392 nd->flags |= LOOKUP_FOLLOW | LOOKUP_DIRECTORY; in do_last()
3402 BUG_ON(nd->flags & LOOKUP_RCU); in do_last()
3512 if ((nd->flags & LOOKUP_DIRECTORY) && !d_can_lookup(nd->path.dentry)) in do_last()
3585 static int do_tmpfile(struct nameidata *nd, unsigned flags, in do_tmpfile() argument
3591 int error = path_lookupat(nd, flags | LOOKUP_DIRECTORY, &path); in do_tmpfile()
3617 static int do_o_path(struct nameidata *nd, unsigned flags, struct file *file) in do_o_path() argument
3620 int error = path_lookupat(nd, flags, &path); in do_o_path()
3630 const struct open_flags *op, unsigned flags) in path_openat() argument
3640 error = do_tmpfile(nd, flags, op, file); in path_openat()
3642 error = do_o_path(nd, flags, file); in path_openat()
3644 const char *s = path_init(nd, flags); in path_openat()
3647 nd->flags &= ~(LOOKUP_OPEN|LOOKUP_CREATE|LOOKUP_EXCL); in path_openat()
3660 if (flags & LOOKUP_RCU) in path_openat()
3672 int flags = op->lookup_flags; in do_filp_open() local
3676 filp = path_openat(&nd, op, flags | LOOKUP_RCU); in do_filp_open()
3678 filp = path_openat(&nd, op, flags); in do_filp_open()
3680 filp = path_openat(&nd, op, flags | LOOKUP_REVAL); in do_filp_open()
3691 int flags = op->lookup_flags | LOOKUP_ROOT; in do_file_open_root() local
3704 file = path_openat(&nd, op, flags | LOOKUP_RCU); in do_file_open_root()
3706 file = path_openat(&nd, op, flags); in do_file_open_root()
3708 file = path_openat(&nd, op, flags | LOOKUP_REVAL); in do_file_open_root()
4415 const char __user *newname, int flags) in do_linkat() argument
4423 if ((flags & ~(AT_SYMLINK_FOLLOW | AT_EMPTY_PATH)) != 0) in do_linkat()
4430 if (flags & AT_EMPTY_PATH) { in do_linkat()
4436 if (flags & AT_SYMLINK_FOLLOW) in do_linkat()
4480 int, newdfd, const char __user *, newname, int, flags) in SYSCALL_DEFINE5() argument
4482 return do_linkat(olddfd, oldname, newdfd, newname, flags); in SYSCALL_DEFINE5()
4543 struct inode **delegated_inode, unsigned int flags) in vfs_rename2() argument
4565 if (!(flags & RENAME_EXCHANGE)) in vfs_rename2()
4586 if ((flags & RENAME_EXCHANGE) && new_is_dir) { in vfs_rename2()
4594 flags); in vfs_rename2()
4600 if (!is_dir || (flags & RENAME_EXCHANGE)) in vfs_rename2()
4613 if ((flags & RENAME_EXCHANGE) && !is_dir && new_is_dir && in vfs_rename2()
4628 new_dir, new_dentry, flags); in vfs_rename2()
4632 if (!(flags & RENAME_EXCHANGE) && target) { in vfs_rename2()
4641 if (!(flags & RENAME_EXCHANGE)) in vfs_rename2()
4647 if (!is_dir || (flags & RENAME_EXCHANGE)) in vfs_rename2()
4654 !(flags & RENAME_EXCHANGE) ? target : NULL, old_dentry); in vfs_rename2()
4655 if (flags & RENAME_EXCHANGE) { in vfs_rename2()
4668 struct inode **delegated_inode, unsigned int flags) in vfs_rename() argument
4670 return vfs_rename2(NULL, old_dir, old_dentry, new_dir, new_dentry, delegated_inode, flags); in vfs_rename()
4675 const char __user *newname, unsigned int flags) in do_renameat2() argument
4689 if (flags & ~(RENAME_NOREPLACE | RENAME_EXCHANGE | RENAME_WHITEOUT)) in do_renameat2()
4692 if ((flags & (RENAME_NOREPLACE | RENAME_WHITEOUT)) && in do_renameat2()
4693 (flags & RENAME_EXCHANGE)) in do_renameat2()
4696 if ((flags & RENAME_WHITEOUT) && !capable(CAP_MKNOD)) in do_renameat2()
4699 if (flags & RENAME_EXCHANGE) in do_renameat2()
4725 if (flags & RENAME_NOREPLACE) in do_renameat2()
4750 if ((flags & RENAME_NOREPLACE) && d_is_positive(new_dentry)) in do_renameat2()
4752 if (flags & RENAME_EXCHANGE) { in do_renameat2()
4768 if (!(flags & RENAME_EXCHANGE) && new_last.name[new_last.len]) in do_renameat2()
4776 if (!(flags & RENAME_EXCHANGE)) in do_renameat2()
4782 &new_path, new_dentry, flags); in do_renameat2()
4787 &delegated_inode, flags); in do_renameat2()
4818 int, newdfd, const char __user *, newname, unsigned int, flags) in SYSCALL_DEFINE5() argument
4820 return do_renameat2(olddfd, oldname, newdfd, newname, flags); in SYSCALL_DEFINE5()
4985 unsigned int flags = 0; in __page_symlink() local
4987 flags |= AOP_FLAG_NOFS; in __page_symlink()
4991 flags, &page, &fsdata); in __page_symlink()