summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/ocfs2/dcache.c5
-rw-r--r--fs/ocfs2/super.c2
2 files changed, 5 insertions, 2 deletions
diff --git a/fs/ocfs2/dcache.c b/fs/ocfs2/dcache.c
index 09efe240e652..18a31906316e 100644
--- a/fs/ocfs2/dcache.c
+++ b/fs/ocfs2/dcache.c
@@ -414,7 +414,7 @@ void ocfs2_dentry_move(struct dentry *dentry, struct dentry *target,
* XXX: Is there any advantage to dropping the lock here?
*/
if (old_dir == new_dir)
- return;
+ goto out_move;
ocfs2_dentry_lock_put(osb, dentry->d_fsdata);
@@ -423,6 +423,9 @@ void ocfs2_dentry_move(struct dentry *dentry, struct dentry *target,
OCFS2_I(new_dir)->ip_blkno, 0);
if (ret)
mlog_errno(ret);
+
+out_move:
+ d_move(dentry, target);
}
struct dentry_operations ocfs2_dentry_ops = {
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
index d17e33e66a1e..33a6de6fc612 100644
--- a/fs/ocfs2/super.c
+++ b/fs/ocfs2/super.c
@@ -682,7 +682,7 @@ static struct file_system_type ocfs2_fs_type = {
.kill_sb = kill_block_super, /* set to the generic one
* right now, but do we
* need to change that? */
- .fs_flags = FS_REQUIRES_DEV,
+ .fs_flags = FS_REQUIRES_DEV|FS_RENAME_DOES_D_MOVE,
.next = NULL
};