Lines Matching refs:dir

1567 				    struct dentry *dir,  in lookup_dcache()  argument
1570 struct dentry *dentry = d_lookup(dir, name); in lookup_dcache()
1596 struct inode *dir = base->d_inode; in lookup_one_qstr_excl() local
1602 if (unlikely(IS_DEADDIR(dir))) in lookup_one_qstr_excl()
1609 old = dir->i_op->lookup(dir, dentry, flags); in lookup_one_qstr_excl()
1668 struct dentry *dir, in __lookup_slow() argument
1672 struct inode *inode = dir->d_inode; in __lookup_slow()
1679 dentry = d_alloc_parallel(dir, name, &wq); in __lookup_slow()
1705 struct dentry *dir, in lookup_slow() argument
1708 struct inode *inode = dir->d_inode; in lookup_slow()
1711 res = __lookup_slow(name, dir, flags); in lookup_slow()
2918 int __check_sticky(struct mnt_idmap *idmap, struct inode *dir, in __check_sticky() argument
2925 if (vfsuid_eq_kuid(i_uid_into_vfsuid(idmap, dir), fsuid)) in __check_sticky()
2951 static int may_delete(struct mnt_idmap *idmap, struct inode *dir, in may_delete() argument
2961 BUG_ON(victim->d_parent->d_inode != dir); in may_delete()
2968 audit_inode_child(dir, victim, AUDIT_TYPE_CHILD_DELETE); in may_delete()
2970 error = inode_permission(idmap, dir, MAY_WRITE | MAY_EXEC); in may_delete()
2973 if (IS_APPEND(dir)) in may_delete()
2976 if (check_sticky(idmap, dir, inode) || IS_APPEND(inode) || in may_delete()
2987 if (IS_DEADDIR(dir)) in may_delete()
3004 struct inode *dir, struct dentry *child) in may_create() argument
3006 audit_inode_child(dir, child, AUDIT_TYPE_CHILD_CREATE); in may_create()
3009 if (IS_DEADDIR(dir)) in may_create()
3011 if (!fsuidgid_has_mapping(dir->i_sb, idmap)) in may_create()
3014 return inode_permission(idmap, dir, MAY_WRITE | MAY_EXEC); in may_create()
3113 static inline umode_t mode_strip_umask(const struct inode *dir, umode_t mode) in mode_strip_umask() argument
3115 if (!IS_POSIXACL(dir)) in mode_strip_umask()
3144 const struct inode *dir, umode_t mode, in vfs_prepare_mode() argument
3147 mode = mode_strip_sgid(idmap, dir, mode); in vfs_prepare_mode()
3148 mode = mode_strip_umask(dir, mode); in vfs_prepare_mode()
3176 int vfs_create(struct mnt_idmap *idmap, struct inode *dir, in vfs_create() argument
3181 error = may_create(idmap, dir, dentry); in vfs_create()
3185 if (!dir->i_op->create) in vfs_create()
3188 mode = vfs_prepare_mode(idmap, dir, mode, S_IALLUGO, S_IFREG); in vfs_create()
3189 error = security_inode_create(dir, dentry, mode); in vfs_create()
3192 error = dir->i_op->create(idmap, dir, dentry, mode, want_excl); in vfs_create()
3194 fsnotify_create(dir, dentry); in vfs_create()
3203 struct inode *dir = dentry->d_parent->d_inode; in vfs_mkobj() local
3204 int error = may_create(&nop_mnt_idmap, dir, dentry); in vfs_mkobj()
3210 error = security_inode_create(dir, dentry, mode); in vfs_mkobj()
3215 fsnotify_create(dir, dentry); in vfs_mkobj()
3309 const struct path *dir, struct dentry *dentry, in may_o_create() argument
3312 int error = security_path_mknod(dir, dentry, mode, 0); in may_o_create()
3316 if (!fsuidgid_has_mapping(dir->dentry->d_sb, idmap)) in may_o_create()
3319 error = inode_permission(idmap, dir->dentry->d_inode, in may_o_create()
3324 return security_inode_create(dir->dentry->d_inode, dentry, mode); in may_o_create()
3345 struct inode *dir = nd->path.dentry->d_inode; in atomic_open() local
3353 error = dir->i_op->atomic_open(dir, dentry, file, in atomic_open()
3400 struct dentry *dir = nd->path.dentry; in lookup_open() local
3401 struct inode *dir_inode = dir->d_inode; in lookup_open()
3412 dentry = d_lookup(dir, &nd->last); in lookup_open()
3415 dentry = d_alloc_parallel(dir, &nd->last, &wq); in lookup_open()
3451 mode = vfs_prepare_mode(idmap, dir->d_inode, mode, mode, mode); in lookup_open()
3509 struct dentry *dir = nd->path.dentry; in open_last_lookups() local
3540 audit_inode(nd->name, dir, AUDIT_INODE_PARENT); in open_last_lookups()
3555 inode_lock(dir->d_inode); in open_last_lookups()
3557 inode_lock_shared(dir->d_inode); in open_last_lookups()
3560 fsnotify_create(dir->d_inode, dentry); in open_last_lookups()
3562 inode_unlock(dir->d_inode); in open_last_lookups()
3564 inode_unlock_shared(dir->d_inode); in open_last_lookups()
3668 struct inode *dir = d_inode(parentpath->dentry); in vfs_tmpfile() local
3674 error = inode_permission(idmap, dir, MAY_WRITE | MAY_EXEC); in vfs_tmpfile()
3677 if (!dir->i_op->tmpfile) in vfs_tmpfile()
3684 mode = vfs_prepare_mode(idmap, dir, mode, mode, mode); in vfs_tmpfile()
3685 error = dir->i_op->tmpfile(idmap, dir, file, mode); in vfs_tmpfile()
3968 int vfs_mknod(struct mnt_idmap *idmap, struct inode *dir, in vfs_mknod() argument
3972 int error = may_create(idmap, dir, dentry); in vfs_mknod()
3981 if (!dir->i_op->mknod) in vfs_mknod()
3984 mode = vfs_prepare_mode(idmap, dir, mode, mode, mode); in vfs_mknod()
3989 error = security_inode_mknod(dir, dentry, mode, dev); in vfs_mknod()
3993 error = dir->i_op->mknod(idmap, dir, dentry, mode, dev); in vfs_mknod()
3995 fsnotify_create(dir, dentry); in vfs_mknod()
4094 int vfs_mkdir(struct mnt_idmap *idmap, struct inode *dir, in vfs_mkdir() argument
4098 unsigned max_links = dir->i_sb->s_max_links; in vfs_mkdir()
4100 error = may_create(idmap, dir, dentry); in vfs_mkdir()
4104 if (!dir->i_op->mkdir) in vfs_mkdir()
4107 mode = vfs_prepare_mode(idmap, dir, mode, S_IRWXUGO | S_ISVTX, 0); in vfs_mkdir()
4108 error = security_inode_mkdir(dir, dentry, mode); in vfs_mkdir()
4112 if (max_links && dir->i_nlink >= max_links) in vfs_mkdir()
4115 error = dir->i_op->mkdir(idmap, dir, dentry, mode); in vfs_mkdir()
4117 fsnotify_mkdir(dir, dentry); in vfs_mkdir()
4175 int vfs_rmdir(struct mnt_idmap *idmap, struct inode *dir, in vfs_rmdir() argument
4178 int error = may_delete(idmap, dir, dentry, 1); in vfs_rmdir()
4183 if (!dir->i_op->rmdir) in vfs_rmdir()
4194 error = security_inode_rmdir(dir, dentry); in vfs_rmdir()
4198 error = dir->i_op->rmdir(dir, dentry); in vfs_rmdir()
4211 d_delete_notify(dir, dentry); in vfs_rmdir()
4304 int vfs_unlink(struct mnt_idmap *idmap, struct inode *dir, in vfs_unlink() argument
4308 int error = may_delete(idmap, dir, dentry, 0); in vfs_unlink()
4313 if (!dir->i_op->unlink) in vfs_unlink()
4322 error = security_inode_unlink(dir, dentry); in vfs_unlink()
4327 error = dir->i_op->unlink(dir, dentry); in vfs_unlink()
4339 fsnotify_unlink(dir, dentry); in vfs_unlink()
4342 d_delete_notify(dir, dentry); in vfs_unlink()
4459 int vfs_symlink(struct mnt_idmap *idmap, struct inode *dir, in vfs_symlink() argument
4464 error = may_create(idmap, dir, dentry); in vfs_symlink()
4468 if (!dir->i_op->symlink) in vfs_symlink()
4471 error = security_inode_symlink(dir, dentry, oldname); in vfs_symlink()
4475 error = dir->i_op->symlink(idmap, dir, dentry, oldname); in vfs_symlink()
4477 fsnotify_create(dir, dentry); in vfs_symlink()
4552 struct inode *dir, struct dentry *new_dentry, in vfs_link() argument
4556 unsigned max_links = dir->i_sb->s_max_links; in vfs_link()
4562 error = may_create(idmap, dir, new_dentry); in vfs_link()
4566 if (dir->i_sb != inode->i_sb) in vfs_link()
4581 if (!dir->i_op->link) in vfs_link()
4586 error = security_inode_link(old_dentry, dir, new_dentry); in vfs_link()
4599 error = dir->i_op->link(old_dentry, dir, new_dentry); in vfs_link()
4609 fsnotify_link(dir, inode, new_dentry); in vfs_link()