Lines Matching defs:dir

1567 				    struct dentry *dir,
1570 struct dentry *dentry = d_lookup(dir, name);
1596 struct inode *dir = base->d_inode;
1602 if (unlikely(IS_DEADDIR(dir)))
1609 old = dir->i_op->lookup(dir, dentry, flags);
1668 struct dentry *dir,
1672 struct inode *inode = dir->d_inode;
1679 dentry = d_alloc_parallel(dir, name, &wq);
1705 struct dentry *dir,
1708 struct inode *inode = dir->d_inode;
1711 res = __lookup_slow(name, dir, flags);
2918 int __check_sticky(struct mnt_idmap *idmap, struct inode *dir,
2925 if (vfsuid_eq_kuid(i_uid_into_vfsuid(idmap, dir), fsuid))
2932 * Check whether we can remove a link victim from directory dir, check
2934 * 1. We can't do it if dir is read-only (done in permission())
2935 * 2. We should have write and exec permissions on dir
2936 * 3. We can't remove anything from append-only dir
2937 * 4. We can't do anything with immutable dir (done in permission())
2938 * 5. If the sticky bit on dir is set we should either
2939 * a. be owner of dir, or
2951 static int may_delete(struct mnt_idmap *idmap, struct inode *dir,
2961 BUG_ON(victim->d_parent->d_inode != dir);
2968 audit_inode_child(dir, victim, AUDIT_TYPE_CHILD_DELETE);
2970 error = inode_permission(idmap, dir, MAY_WRITE | MAY_EXEC);
2973 if (IS_APPEND(dir))
2976 if (check_sticky(idmap, dir, inode) || IS_APPEND(inode) ||
2987 if (IS_DEADDIR(dir))
2995 * dir.
2998 * 2. We can't do it if dir is read-only (done in permission())
3000 * 4. We should have write and exec permissions on dir
3001 * 5. We can't do it if dir is immutable (done in permission())
3004 struct inode *dir, struct dentry *child)
3006 audit_inode_child(dir, child, AUDIT_TYPE_CHILD_CREATE);
3009 if (IS_DEADDIR(dir))
3011 if (!fsuidgid_has_mapping(dir->i_sb, idmap))
3014 return inode_permission(idmap, dir, MAY_WRITE | MAY_EXEC);
3103 * @dir: parent directory of the new inode
3104 * @mode: mode of the new inode to be created in @dir
3113 static inline umode_t mode_strip_umask(const struct inode *dir, umode_t mode)
3115 if (!IS_POSIXACL(dir))
3123 * @dir: parent directory of the new inode
3144 const struct inode *dir, umode_t mode,
3147 mode = mode_strip_sgid(idmap, dir, mode);
3148 mode = mode_strip_umask(dir, mode);
3163 * @dir: inode of @dentry
3176 int vfs_create(struct mnt_idmap *idmap, struct inode *dir,
3181 error = may_create(idmap, dir, dentry);
3185 if (!dir->i_op->create)
3188 mode = vfs_prepare_mode(idmap, dir, mode, S_IALLUGO, S_IFREG);
3189 error = security_inode_create(dir, dentry, mode);
3192 error = dir->i_op->create(idmap, dir, dentry, mode, want_excl);
3194 fsnotify_create(dir, dentry);
3203 struct inode *dir = dentry->d_parent->d_inode;
3204 int error = may_create(&nop_mnt_idmap, dir, dentry);
3210 error = security_inode_create(dir, dentry, mode);
3215 fsnotify_create(dir, dentry);
3309 const struct path *dir, struct dentry *dentry,
3312 int error = security_path_mknod(dir, dentry, mode, 0);
3316 if (!fsuidgid_has_mapping(dir->dentry->d_sb, idmap))
3319 error = inode_permission(idmap, dir->dentry->d_inode,
3324 return security_inode_create(dir->dentry->d_inode, dentry, mode);
3345 struct inode *dir = nd->path.dentry->d_inode;
3353 error = dir->i_op->atomic_open(dir, dentry, file,
3400 struct dentry *dir = nd->path.dentry;
3401 struct inode *dir_inode = dir->d_inode;
3412 dentry = d_lookup(dir, &nd->last);
3415 dentry = d_alloc_parallel(dir, &nd->last, &wq);
3451 mode = vfs_prepare_mode(idmap, dir->d_inode, mode, mode, mode);
3509 struct dentry *dir = nd->path.dentry;
3540 audit_inode(nd->name, dir, AUDIT_INODE_PARENT);
3555 inode_lock(dir->d_inode);
3557 inode_lock_shared(dir->d_inode);
3560 fsnotify_create(dir->d_inode, dentry);
3562 inode_unlock(dir->d_inode);
3564 inode_unlock_shared(dir->d_inode);
3668 struct inode *dir = d_inode(parentpath->dentry);
3674 error = inode_permission(idmap, dir, MAY_WRITE | MAY_EXEC);
3677 if (!dir->i_op->tmpfile)
3684 mode = vfs_prepare_mode(idmap, dir, mode, mode, mode);
3685 error = dir->i_op->tmpfile(idmap, dir, file, mode);
3955 * @dir: inode of @dentry
3968 int vfs_mknod(struct mnt_idmap *idmap, struct inode *dir,
3972 int error = may_create(idmap, dir, dentry);
3981 if (!dir->i_op->mknod)
3984 mode = vfs_prepare_mode(idmap, dir, mode, mode, mode);
3989 error = security_inode_mknod(dir, dentry, mode, dev);
3993 error = dir->i_op->mknod(idmap, dir, dentry, mode, dev);
3995 fsnotify_create(dir, dentry);
4082 * @dir: inode of @dentry
4094 int vfs_mkdir(struct mnt_idmap *idmap, struct inode *dir,
4098 unsigned max_links = dir->i_sb->s_max_links;
4100 error = may_create(idmap, dir, dentry);
4104 if (!dir->i_op->mkdir)
4107 mode = vfs_prepare_mode(idmap, dir, mode, S_IRWXUGO | S_ISVTX, 0);
4108 error = security_inode_mkdir(dir, dentry, mode);
4112 if (max_links && dir->i_nlink >= max_links)
4115 error = dir->i_op->mkdir(idmap, dir, dentry, mode);
4117 fsnotify_mkdir(dir, dentry);
4164 * @dir: inode of @dentry
4175 int vfs_rmdir(struct mnt_idmap *idmap, struct inode *dir,
4178 int error = may_delete(idmap, dir, dentry, 1);
4183 if (!dir->i_op->rmdir)
4194 error = security_inode_rmdir(dir, dentry);
4198 error = dir->i_op->rmdir(dir, dentry);
4211 d_delete_notify(dir, dentry);
4282 * @dir: parent directory
4286 * The caller must hold dir->i_mutex.
4292 * dir->i_mutex before doing so.
4304 int vfs_unlink(struct mnt_idmap *idmap, struct inode *dir,
4308 int error = may_delete(idmap, dir, dentry, 0);
4313 if (!dir->i_op->unlink)
4322 error = security_inode_unlink(dir, dentry);
4327 error = dir->i_op->unlink(dir, dentry);
4339 fsnotify_unlink(dir, dentry);
4342 d_delete_notify(dir, dentry);
4447 * @dir: inode of @dentry
4459 int vfs_symlink(struct mnt_idmap *idmap, struct inode *dir,
4464 error = may_create(idmap, dir, dentry);
4468 if (!dir->i_op->symlink)
4471 error = security_inode_symlink(dir, dentry, oldname);
4475 error = dir->i_op->symlink(idmap, dir, dentry, oldname);
4477 fsnotify_create(dir, dentry);
4529 * @dir: new parent
4533 * The caller must hold dir->i_mutex
4552 struct inode *dir, struct dentry *new_dentry,
4556 unsigned max_links = dir->i_sb->s_max_links;
4562 error = may_create(idmap, dir, new_dentry);
4566 if (dir->i_sb != inode->i_sb)
4581 if (!dir->i_op->link)
4586 error = security_inode_link(old_dentry, dir, new_dentry);
4599 error = dir->i_op->link(old_dentry, dir, new_dentry);
4609 fsnotify_link(dir, inode, new_dentry);