]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD: removal collections will be removed inline and not queued
authorSamuel Just <sam.just@inktank.com>
Mon, 29 Apr 2013 18:29:30 +0000 (11:29 -0700)
committerSamuel Just <sam.just@inktank.com>
Tue, 7 May 2013 15:16:04 +0000 (08:16 -0700)
Signed-off-by: Samuel Just <sam.just@inktank.com>
src/osd/OSD.cc

index 83cf0a9589f56c0e0488ee542ac9b210c8cc4307..073ca080f707f2be5757f6c747d9eb54f8f2bca1 100644 (file)
@@ -1707,8 +1707,10 @@ void OSD::load_pgs()
        ++it) {
     pg_t pgid;
     snapid_t snap;
+    uint64_t seq;
 
-    if (it->is_temp(pgid)) {
+    if (it->is_temp(pgid) ||
+       it->is_removal(&seq, &pgid)) {
       dout(10) << "load_pgs " << *it << " clearing temp" << dendl;
       clear_temp(store, *it);
       continue;
@@ -1726,21 +1728,6 @@ void OSD::load_pgs()
       continue;
     }
 
-    uint64_t seq;
-    if (it->is_removal(&seq, &pgid)) {
-      if (seq >= next_removal_seq)
-       next_removal_seq = seq + 1;
-      dout(10) << "load_pgs queueing " << *it << " for removal, seq is "
-              << seq << " pgid is " << pgid << dendl;
-      boost::tuple<coll_t, SequencerRef, DeletingStateRef> *to_queue =
-       new boost::tuple<coll_t, SequencerRef, DeletingStateRef>;
-      to_queue->get<0>() = *it;
-      to_queue->get<1>() = service.osr_registry.lookup_or_create(pgid, stringify(pgid));
-      to_queue->get<2>() = service.deleting_pgs.lookup_or_create(pgid);
-      remove_wq.queue(to_queue);
-      continue;
-    }
-
     dout(10) << "load_pgs ignoring unrecognized " << *it << dendl;
   }