From: Sage Weil Date: Mon, 23 Nov 2009 21:47:01 +0000 (-0800) Subject: mds: fix replay of hard links X-Git-Tag: v0.18~58 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=cf28787c7b10185ccecc0aefcda00d339f28bcf5;p=ceph.git mds: fix replay of hard links Use dir->link_remote_inode, not raw function, so that the CDir accounting gets set up. --- diff --git a/src/mds/journal.cc b/src/mds/journal.cc index 6e33083d17d7..8107cd32056c 100644 --- a/src/mds/journal.cc +++ b/src/mds/journal.cc @@ -527,7 +527,7 @@ void EMetaBlob::replay(MDS *mds, LogSegment *logseg) dout(10) << "EMetaBlob.replay unlinking " << *dn << dendl; dir->unlink_inode(dn); } - dn->get_linkage()->set_remote(p->ino, p->d_type); + dir->link_remote_inode(dn, p->ino, p->d_type); dn->set_version(p->dnv); if (p->dirty) dn->_mark_dirty(logseg); dout(10) << "EMetaBlob.replay for [" << p->dnfirst << "," << p->dnlast << "] had " << *dn << dendl;