Commit 804032fa authored by Miklos Szeredi's avatar Miklos Szeredi

ovl: don't check rename to self

This is redundant, the vfs already performed this check (and was broken,
see commit 9409e22a ("vfs: rename: check backing inode being equal")).
Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
parent ca4c8a3a
...@@ -826,18 +826,6 @@ static int ovl_rename(struct inode *olddir, struct dentry *old, ...@@ -826,18 +826,6 @@ static int ovl_rename(struct inode *olddir, struct dentry *old,
err = -EXDEV; err = -EXDEV;
if (!overwrite && OVL_TYPE_MERGE_OR_LOWER(new_type) && new_is_dir) if (!overwrite && OVL_TYPE_MERGE_OR_LOWER(new_type) && new_is_dir)
goto out; goto out;
err = 0;
if (!OVL_TYPE_UPPER(new_type) && !OVL_TYPE_UPPER(old_type)) {
if (ovl_dentry_lower(old)->d_inode ==
ovl_dentry_lower(new)->d_inode)
goto out;
}
if (OVL_TYPE_UPPER(new_type) && OVL_TYPE_UPPER(old_type)) {
if (ovl_dentry_upper(old)->d_inode ==
ovl_dentry_upper(new)->d_inode)
goto out;
}
} else { } else {
if (ovl_dentry_is_opaque(new)) if (ovl_dentry_is_opaque(new))
new_type = __OVL_PATH_UPPER; new_type = __OVL_PATH_UPPER;
...@@ -933,6 +921,9 @@ static int ovl_rename(struct inode *olddir, struct dentry *old, ...@@ -933,6 +921,9 @@ static int ovl_rename(struct inode *olddir, struct dentry *old,
if (newdentry == trap) if (newdentry == trap)
goto out_dput; goto out_dput;
if (WARN_ON(olddentry->d_inode == newdentry->d_inode))
goto out_dput;
if (is_dir && !old_opaque && new_opaque) { if (is_dir && !old_opaque && new_opaque) {
err = ovl_set_opaque(olddentry); err = ovl_set_opaque(olddentry);
if (err) if (err)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment