summaryrefslogtreecommitdiff
path: root/src/osd/OSD.cc
diff options
context:
space:
mode:
authorSamuel Just <sam.just@inktank.com>2013-04-29 11:29:30 -0700
committerSamuel Just <sam.just@inktank.com>2013-05-07 08:16:04 -0700
commit4b548b5f0c6327e71a6e5397cf871f4964bb0b03 (patch)
tree3c17d1ba02eba28682908cf622ac3bd90cb2ecbb /src/osd/OSD.cc
parentd7cd957433fcf0f4c40964709a485654e53d2a4d (diff)
downloadceph-4b548b5f0c6327e71a6e5397cf871f4964bb0b03.tar.gz
OSD: removal collections will be removed inline and not queued
Signed-off-by: Samuel Just <sam.just@inktank.com>
Diffstat (limited to 'src/osd/OSD.cc')
-rw-r--r--src/osd/OSD.cc19
1 files changed, 3 insertions, 16 deletions
diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc
index 83cf0a9589f..073ca080f70 100644
--- a/src/osd/OSD.cc
+++ b/src/osd/OSD.cc
@@ -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;
}