diff options
author | Mark Fasheh <mark.fasheh@oracle.com> | 2006-09-08 14:22:54 -0700 |
---|---|---|
committer | Mark Fasheh <mark.fasheh@oracle.com> | 2006-09-24 13:50:45 -0700 |
commit | 1ba9da2ffa54b56a6346746248bfa38124d499a6 (patch) | |
tree | 51b25c65e92b6d2b3281d175e517cb5699e4b9ee /fs/ocfs2/super.c | |
parent | 349457ccf2592c14bdf13b6706170ae2e94931b1 (diff) | |
download | op-kernel-dev-1ba9da2ffa54b56a6346746248bfa38124d499a6.zip op-kernel-dev-1ba9da2ffa54b56a6346746248bfa38124d499a6.tar.gz |
ocfs2: manually d_move() during ocfs2_rename()
Make use of FS_RENAME_DOES_D_MOVE to avoid a race condition that can occur
during ->rename() if we d_move() outside of the parent directory cluster
locks, and another node discovers the new name (created during the rename)
and unlinks it. d_move() will unconditionally rehash a dentry - which will
leave stale data in the system.
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Diffstat (limited to 'fs/ocfs2/super.c')
-rw-r--r-- | fs/ocfs2/super.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index d17e33e..33a6de6 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 }; |