|
@@ -452,7 +452,10 @@ static int hfsplus_rename(struct inode *old_dir, struct dentry *old_dentry,
|
|
|
|
|
|
/* Unlink destination if it already exists */
|
|
/* Unlink destination if it already exists */
|
|
if (new_dentry->d_inode) {
|
|
if (new_dentry->d_inode) {
|
|
- res = hfsplus_unlink(new_dir, new_dentry);
|
|
|
|
|
|
+ if (S_ISDIR(new_dentry->d_inode->i_mode))
|
|
|
|
+ res = hfsplus_rmdir(new_dir, new_dentry);
|
|
|
|
+ else
|
|
|
|
+ res = hfsplus_unlink(new_dir, new_dentry);
|
|
if (res)
|
|
if (res)
|
|
return res;
|
|
return res;
|
|
}
|
|
}
|