]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: make mislinked dentry during replay workaround tolerate directories, too
authorSage Weil <sage@newdream.net>
Mon, 2 Aug 2010 16:57:12 +0000 (09:57 -0700)
committerSage Weil <sage@newdream.net>
Mon, 2 Aug 2010 16:57:30 +0000 (09:57 -0700)
This should probably all go away when the original bug is fixed!

src/mds/MDCache.h
src/mds/journal.cc

index 79f5442b67d06af3ff0de4934c2d892f8b57cdd1..8de0c3616299bf038907bf2570ce988bb7260d2d 100644 (file)
@@ -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);
   }
index ec2013dda5ac11a5120bbd040eeb2998118cff10..8fbdbc043e221a80fc73bc1180d512ae3c60eaef 100644 (file)
@@ -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
          }