diff mbox

mds: don't journal null dentry for overwrited remote linkage.

Message ID 1355735299-20401-1-git-send-email-zheng.z.yan@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Yan, Zheng Dec. 17, 2012, 9:08 a.m. UTC
From: "Yan, Zheng" <zheng.z.yan@intel.com>

Server::_rename_prepare() adds null dest dentry to the EMetaBlob if
the rename operation is overwriting remote linkage. This is incorrect
because null dentry are processed after primary and remote dentries
during journal replay. The erroneous null dentry makes rename dest
file disappear. The bug can causes undeletable directory.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
---
 src/mds/Server.cc | 4 ----
 2 files changed, 1 insertion(+), 5 deletions(-)
diff mbox

Patch

diff --git a/src/mds/Server.cc b/src/mds/Server.cc
index ba43656..d354adb 100644
--- a/src/mds/Server.cc
+++ b/src/mds/Server.cc
@@ -5709,10 +5709,6 @@  void Server::_rename_prepare(MDRequest *mdr,
 				    CEPH_NOSNAP, 0, destdnl);
 	metablob->add_primary_dentry(oldin->get_projected_parent_dn(), true, oldin);
       }
-      if (destdn->is_auth()) {
-	// auth for dn, not targeti
-	metablob->add_null_dentry(destdn, true);
-      }
     }
   }