diff options
author | Samuel Just <sam.just@inktank.com> | 2013-04-29 11:29:30 -0700 |
---|---|---|
committer | Samuel Just <sam.just@inktank.com> | 2013-05-07 08:16:04 -0700 |
commit | 4b548b5f0c6327e71a6e5397cf871f4964bb0b03 (patch) | |
tree | 3c17d1ba02eba28682908cf622ac3bd90cb2ecbb /src/osd/OSD.cc | |
parent | d7cd957433fcf0f4c40964709a485654e53d2a4d (diff) | |
download | ceph-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.cc | 19 |
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; } |