]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: adjust open_parent on replay relinking
authorSage Weil <sage@newdream.net>
Mon, 4 Aug 2008 17:37:43 +0000 (10:37 -0700)
committerSage Weil <sage@newdream.net>
Mon, 4 Aug 2008 17:37:43 +0000 (10:37 -0700)
src/mds/journal.cc

index 0d45943cd4fb09df97694025b0ccd10252a27d0f..63327fab688bdd3c735ba7236e0e75943bcecefd 100644 (file)
@@ -419,6 +419,15 @@ void EMetaBlob::replay(MDS *mds, LogSegment *logseg)
        }
        in->first = p->dnfirst;
       }
+
+      // verify open snaprealm parents
+      if (in->snaprealm) {
+       SnapRealm *actual = in->get_parent_dn()->get_dir()->inode->find_snaprealm();
+       if (actual != in->snaprealm->parent) {
+         dout(10) << "EMetaBlob.replay fixing snaprealm open_parent" << dendl;
+         in->snaprealm->change_open_parent_to(actual);
+       }
+      }
     }
 
     // remote dentries