From: Sage Weil Date: Mon, 2 Aug 2010 16:57:12 +0000 (-0700) Subject: mds: make mislinked dentry during replay workaround tolerate directories, too X-Git-Tag: v0.22~355 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2136ee763659e84f5715974450b89e8dea31a717;p=ceph.git mds: make mislinked dentry during replay workaround tolerate directories, too This should probably all go away when the original bug is fixed! --- diff --git a/src/mds/MDCache.h b/src/mds/MDCache.h index 79f5442b67d..8de0c361629 100644 --- a/src/mds/MDCache.h +++ b/src/mds/MDCache.h @@ -657,8 +657,9 @@ protected: void disambiguate_imports(); void recalc_auth_bits(); void trim_unlinked_inodes(); - void remove_inode_recursive(CInode *in); public: + void remove_inode_recursive(CInode *in); + void add_rollback(metareqid_t reqid) { need_resolve_rollback.insert(reqid); } diff --git a/src/mds/journal.cc b/src/mds/journal.cc index ec2013dda5a..8fbdbc043e2 100644 --- a/src/mds/journal.cc +++ b/src/mds/journal.cc @@ -488,7 +488,7 @@ void EMetaBlob::replay(MDS *mds, LogSegment *logseg) dout(-10) << ss << dendl; mds->logclient.log(LOG_WARN, ss); dir->unlink_inode(dn); - mds->mdcache->remove_inode(old_in); + mds->mdcache->remove_inode_recursive(old_in); //assert(0); // hrm! fallout from sloppy unlink? or? hmmm FIXME investigate further }