]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: Fix bad inode deref.
authorGreg Farnum <gregf@hq.newdream.net>
Fri, 5 Nov 2010 19:45:06 +0000 (12:45 -0700)
committerGreg Farnum <gregf@hq.newdream.net>
Fri, 5 Nov 2010 19:45:45 +0000 (12:45 -0700)
Accidentally trying to print out the CInode after removing it in trim_non_auth!
Move the print to before it's been unlinked/removed/etc.

src/mds/MDCache.cc

index 57ffb192d285782261fcf4d9233d0ac2e9990473..f739d9d372615f1829c83803434d66c1d174c865 100644 (file)
@@ -5110,6 +5110,7 @@ void MDCache::trim_non_auth()
       else if (dnl->is_primary()) {
        CInode *in = dnl->get_inode();
        list<CDir*> ls;
+        warn_string_dirs << in->get_parent_dn()->get_name() << std::endl;
        in->get_dirfrags(ls);
        for (list<CDir*>::iterator p = ls.begin(); p != ls.end(); ++p) {
          CDir *subdir = *p;
@@ -5121,7 +5122,6 @@ void MDCache::trim_non_auth()
        }
        dir->unlink_inode(dn);
        remove_inode(in);
-       warn_string_dirs << in->get_parent_dn()->get_name() << std::endl;
       } 
       else {
        assert(dnl->is_null());