From: Yan, Zheng Date: Wed, 16 Jan 2013 12:25:30 +0000 (+0800) Subject: mds: journal inode's projected parent when doing link rollback X-Git-Tag: v0.57~88^2~10 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0cf5e4e55ddf32d5087b39ab06961b22db5d6b5a;p=ceph.git mds: journal inode's projected parent when doing link rollback Otherwise the journal entry will revert the effect of any on-going rename operation for the inode. Signed-off-by: Yan, Zheng --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index f72a28690343..2b5c9e53bad9 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -4395,7 +4395,7 @@ void Server::do_link_rollback(bufferlist &rbl, int master, MDRequest *mdr) mut->add_projected_inode(in); // parent dir rctime - CDir *parent = in->get_parent_dn()->get_dir(); + CDir *parent = in->get_projected_parent_dn()->get_dir(); fnode_t *pf = parent->project_fnode(); mut->add_projected_fnode(parent); pf->version = parent->pre_dirty(); @@ -4420,7 +4420,7 @@ void Server::do_link_rollback(bufferlist &rbl, int master, MDRequest *mdr) mdlog->start_entry(le); le->commit.add_dir_context(parent); le->commit.add_dir(parent, true); - le->commit.add_primary_dentry(in->get_parent_dn(), true, 0); + le->commit.add_primary_dentry(in->get_projected_parent_dn(), true, 0); mdlog->submit_entry(le, new C_MDS_LoggedLinkRollback(this, mut, mdr)); mdlog->flush();