]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: handle realm split in open_snaprealm()
authorSage Weil <sage@newdream.net>
Tue, 5 Aug 2008 03:55:45 +0000 (20:55 -0700)
committerSage Weil <sage@newdream.net>
Tue, 5 Aug 2008 03:55:45 +0000 (20:55 -0700)
src/mds/CInode.cc
src/mds/MDCache.cc
src/mds/journal.cc

index 6af5f67adc0877f55d36ab5549ab54024b49e478..ddeb18233f35d79ae6331409415b35c4b1ec4551 100644 (file)
@@ -1202,12 +1202,13 @@ void CInode::open_snaprealm()
     SnapRealm *parent = find_snaprealm();
     snaprealm = new SnapRealm(mdcache, this);
     if (parent) {
-      snaprealm->parent = parent;
-      parent->open_children.insert(snaprealm);
-      dout(10) << " opened snaprealm " << snaprealm
+      dout(10) << "open_snaprealm " << snaprealm
               << " parent is " << parent
               << " siblings are " << parent->open_children
               << dendl;
+      snaprealm->parent = parent;
+      parent->split_at(snaprealm);
+      parent->open_children.insert(snaprealm);
     }
   }
 }
index 113e0a4515ad142837f1c476633d835cdbc37cf1..1615378b70a9755b2d1f6466f06e1c739b5ad7e3 100644 (file)
@@ -6134,7 +6134,6 @@ void MDCache::_snaprealm_create_finish(MDRequest *mdr, Mutation *mut, CInode *in
   SnapRealm *parent = in->snaprealm->parent;
   assert(parent);
   assert(parent->open_children.count(in->snaprealm));
-  parent->split_at(in->snaprealm);
 
   // notify clients of update|split
   list<inodeno_t> split_inos;
index d0778d8c0f151025a440cc756f849f252f2873fd..348ef98d5f3a06488475e8bd85fb203d116d1e35 100644 (file)
@@ -434,12 +434,6 @@ void EMetaBlob::replay(MDS *mds, LogSegment *logseg)
          }
        }
       }
-
-      if (do_snap_split && in->snaprealm) {
-       dout(10) << "EMetaBlob.reply  splitting snaprealm" << dendl;
-       in->snaprealm->parent->split_at(in->snaprealm);
-      }
-
     }
 
     // remote dentries