From: Yan, Zheng Date: Fri, 19 Dec 2014 07:30:48 +0000 (+0800) Subject: mds: properly project past snaprealm parent while renaming files X-Git-Tag: v0.93~87^2~25 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6cd044acdfec5d208e8932202d17e29b1e4da946;p=ceph.git mds: properly project past snaprealm parent while renaming files Signed-off-by: Yan, Zheng --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 0ef3fea243e2..3af913259ad8 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -6401,7 +6401,7 @@ void Server::_rename_prepare(MDRequestRef& mdr, if (destdnl->is_primary()) { if (destdn->is_auth()) { // project snaprealm, too - if (oldin->snaprealm || src_realm->get_newest_seq() + 1 > srcdn->first) + if (oldin->snaprealm || dest_realm->get_newest_seq() + 1 > destdn->first) oldin->project_past_snaprealm_parent(straydn->get_dir()->inode->find_snaprealm()); straydn->first = MAX(oldin->first, next_dest_snap); metablob->add_primary_dentry(straydn, oldin, true, true); @@ -6447,7 +6447,7 @@ void Server::_rename_prepare(MDRequestRef& mdr, } } else if (srcdnl->is_primary()) { // project snap parent update? - if (destdn->is_auth() && + if (destdn->is_auth() && src_realm != dest_realm && (srci->snaprealm || src_realm->get_newest_seq() + 1 > srcdn->first)) srci->project_past_snaprealm_parent(dest_realm);