aboutsummaryrefslogtreecommitdiffstats
path: root/fs/kernfs/dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/kernfs/dir.c')
-rw-r--r--fs/kernfs/dir.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
index e57174d43683..c7e23ca945ab 100644
--- a/fs/kernfs/dir.c
+++ b/fs/kernfs/dir.c
@@ -1096,13 +1096,17 @@ static int kernfs_iop_rmdir(struct inode *dir, struct dentry *dentry)
1096} 1096}
1097 1097
1098static int kernfs_iop_rename(struct inode *old_dir, struct dentry *old_dentry, 1098static int kernfs_iop_rename(struct inode *old_dir, struct dentry *old_dentry,
1099 struct inode *new_dir, struct dentry *new_dentry) 1099 struct inode *new_dir, struct dentry *new_dentry,
1100 unsigned int flags)
1100{ 1101{
1101 struct kernfs_node *kn = old_dentry->d_fsdata; 1102 struct kernfs_node *kn = old_dentry->d_fsdata;
1102 struct kernfs_node *new_parent = new_dir->i_private; 1103 struct kernfs_node *new_parent = new_dir->i_private;
1103 struct kernfs_syscall_ops *scops = kernfs_root(kn)->syscall_ops; 1104 struct kernfs_syscall_ops *scops = kernfs_root(kn)->syscall_ops;
1104 int ret; 1105 int ret;
1105 1106
1107 if (flags)
1108 return -EINVAL;
1109
1106 if (!scops || !scops->rename) 1110 if (!scops || !scops->rename)
1107 return -EPERM; 1111 return -EPERM;
1108 1112
@@ -1133,7 +1137,7 @@ const struct inode_operations kernfs_dir_iops = {
1133 1137
1134 .mkdir = kernfs_iop_mkdir, 1138 .mkdir = kernfs_iop_mkdir,
1135 .rmdir = kernfs_iop_rmdir, 1139 .rmdir = kernfs_iop_rmdir,
1136 .rename = kernfs_iop_rename, 1140 .rename2 = kernfs_iop_rename,
1137}; 1141};
1138 1142
1139static struct kernfs_node *kernfs_leftmost_descendant(struct kernfs_node *pos) 1143static struct kernfs_node *kernfs_leftmost_descendant(struct kernfs_node *pos)