[PATCH] Allow file systems to manually d_move() inside of ->rename()
Some file systems want to manually d_move() the dentries involved in a rename. We can do this by making use of the FS_ODD_RENAME flag if we just have nfs_rename() unconditionally do the d_move(). While there, we rename the flag to be more descriptive. OCFS2 uses this to protect that part of the rename operation with a cluster lock. Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com> Cc: Trond Myklebust <trond.myklebust@fys.uio.no> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: Andrew Morton <akpm@osdl.org>
This commit is contained in:
@@ -71,7 +71,7 @@ static struct file_system_type nfs_fs_type = {
|
||||
.name = "nfs",
|
||||
.get_sb = nfs_get_sb,
|
||||
.kill_sb = nfs_kill_super,
|
||||
.fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
|
||||
.fs_flags = FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
|
||||
};
|
||||
|
||||
struct file_system_type nfs_xdev_fs_type = {
|
||||
@@ -79,7 +79,7 @@ struct file_system_type nfs_xdev_fs_type = {
|
||||
.name = "nfs",
|
||||
.get_sb = nfs_xdev_get_sb,
|
||||
.kill_sb = nfs_kill_super,
|
||||
.fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
|
||||
.fs_flags = FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
|
||||
};
|
||||
|
||||
static struct super_operations nfs_sops = {
|
||||
@@ -107,7 +107,7 @@ static struct file_system_type nfs4_fs_type = {
|
||||
.name = "nfs4",
|
||||
.get_sb = nfs4_get_sb,
|
||||
.kill_sb = nfs4_kill_super,
|
||||
.fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
|
||||
.fs_flags = FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
|
||||
};
|
||||
|
||||
struct file_system_type nfs4_xdev_fs_type = {
|
||||
@@ -115,7 +115,7 @@ struct file_system_type nfs4_xdev_fs_type = {
|
||||
.name = "nfs4",
|
||||
.get_sb = nfs4_xdev_get_sb,
|
||||
.kill_sb = nfs4_kill_super,
|
||||
.fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
|
||||
.fs_flags = FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
|
||||
};
|
||||
|
||||
struct file_system_type nfs4_referral_fs_type = {
|
||||
@@ -123,7 +123,7 @@ struct file_system_type nfs4_referral_fs_type = {
|
||||
.name = "nfs4",
|
||||
.get_sb = nfs4_referral_get_sb,
|
||||
.kill_sb = nfs4_kill_super,
|
||||
.fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
|
||||
.fs_flags = FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
|
||||
};
|
||||
|
||||
static struct super_operations nfs4_sops = {
|
||||
|
Reference in New Issue
Block a user