]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: fix snap trimmer SnapSet adjustment
authorSage Weil <sage@newdream.net>
Thu, 1 Apr 2010 14:27:59 +0000 (07:27 -0700)
committerSage Weil <sage@newdream.net>
Thu, 1 Apr 2010 14:27:59 +0000 (07:27 -0700)
AFAICS it's totally wrong?

src/osd/ReplicatedPG.cc

index fd36737b353a48e035db25301d57ca75defafaa8..f171f6bfc756f9d69ebbca723fd2b271288cc6dc 100644 (file)
@@ -759,17 +759,12 @@ bool ReplicatedPG::snap_trimmer()
 
       dout(10) << coid << " snaps " << snaps << " old snapset " << snapset << dendl;
 
-      // remove snaps
+      // trim clone's snaps
       vector<snapid_t> newsnaps;
       for (unsigned i=0; i<snaps.size(); i++)
        if (!osd->_lookup_pool(info.pgid.pool())->info.is_removed_snap(snaps[i]))
          newsnaps.push_back(snaps[i]);
-       else {
-         vector<snapid_t>::iterator q = snapset.snaps.begin();
-         while (*q != snaps[i])
-           q++;  // it should be in there
-         snapset.snaps.erase(q);
-       }
+
       if (newsnaps.empty()) {
        // remove clone
        dout(10) << coid << " snaps " << snaps << " -> " << newsnaps << " ... deleting" << dendl;
@@ -1621,7 +1616,7 @@ void ReplicatedPG::make_writeable(OpContext *ctx)
   // update snapset with latest snap context
   ssc->snapset.seq = snapc.seq;
   ssc->snapset.snaps = snapc.snaps;
-  dout(20) << "make_writeable " << soid << " done" << dendl;
+  dout(20) << "make_writeable " << soid << " done, snapset=" << ssc->snapset << dendl;
 }