From: Sage Weil Date: Thu, 23 Jul 2015 14:17:27 +0000 (-0400) Subject: explicitly specify comparator for all hobject_t maps and sets X-Git-Tag: v9.1.0~346^2~34 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a208832cef444238215892eda8ccfe9824cefcd8;p=ceph.git explicitly specify comparator for all hobject_t maps and sets This is necessary now that operator< is not defined. Signed-off-by: Sage Weil --- diff --git a/src/messages/MOSDSubOp.h b/src/messages/MOSDSubOp.h index 544dfcfe6ae5..f746568f95db 100644 --- a/src/messages/MOSDSubOp.h +++ b/src/messages/MOSDSubOp.h @@ -69,7 +69,7 @@ public: map attrset; interval_set data_subset; - map > clone_subsets; + map, hobject_t::BitwiseComparator> clone_subsets; bool first, complete; diff --git a/src/osd/ECBackend.cc b/src/osd/ECBackend.cc index a64c0f2a079f..474ca2ed804a 100644 --- a/src/osd/ECBackend.cc +++ b/src/osd/ECBackend.cc @@ -209,7 +209,7 @@ struct OnRecoveryReadComplete : struct RecoveryMessages { map reads; + ECBackend::read_request_t, hobject_t::BitwiseComparator> reads; void read( ECBackend *ec, const hobject_t &hoid, uint64_t off, uint64_t len, @@ -828,7 +828,7 @@ void ECBackend::handle_sub_write( add_temp_objs(op.temp_added); } if (op.t.empty()) { - for (set::iterator i = op.temp_removed.begin(); + for (set::iterator i = op.temp_removed.begin(); i != op.temp_removed.end(); ++i) { dout(10) << __func__ << ": removing object " << *i @@ -883,7 +883,7 @@ void ECBackend::handle_sub_read( ECSubRead &op, ECSubReadReply *reply) { - for(map > >::iterator i = + for(map >, hobject_t::BitwiseComparator>::iterator i = op.to_read.begin(); i != op.to_read.end(); ++i) { @@ -913,7 +913,7 @@ void ECBackend::handle_sub_read( } } } - for (set::iterator i = op.attrs_to_read.begin(); + for (set::iterator i = op.attrs_to_read.begin(); i != op.attrs_to_read.end(); ++i) { dout(10) << __func__ << ": fulfilling attr request on " @@ -967,7 +967,7 @@ void ECBackend::handle_sub_read_reply( return; } ReadOp &rop = iter->second; - for (map > >::iterator i = + for (map >, hobject_t::BitwiseComparator>::iterator i = op.buffers_read.begin(); i != op.buffers_read.end(); ++i) { @@ -994,7 +994,7 @@ void ECBackend::handle_sub_read_reply( riter->get<2>()[from].claim(j->second); } } - for (map >::iterator i = op.attrs_read.begin(); + for (map, hobject_t::BitwiseComparator>::iterator i = op.attrs_read.begin(); i != op.attrs_read.end(); ++i) { assert(!op.errors.count(i->first)); @@ -1005,7 +1005,7 @@ void ECBackend::handle_sub_read_reply( rop.complete[i->first].attrs = map(); (*(rop.complete[i->first].attrs)).swap(i->second); } - for (map::iterator i = op.errors.begin(); + for (map::iterator i = op.errors.begin(); i != op.errors.end(); ++i) { rop.complete[i->first].errors.insert( @@ -1034,9 +1034,9 @@ shard_to_read_map.find(from); void ECBackend::complete_read_op(ReadOp &rop, RecoveryMessages *m) { - map::iterator reqiter = + map::iterator reqiter = rop.to_read.begin(); - map::iterator resiter = + map::iterator resiter = rop.complete.begin(); assert(rop.to_read.size() == rop.complete.size()); for (; reqiter != rop.to_read.end(); ++reqiter, ++resiter) { @@ -1067,8 +1067,8 @@ void ECBackend::filter_read_op( const OSDMapRef osdmap, ReadOp &op) { - set to_cancel; - for (map >::iterator i = op.source_to_obj.begin(); + set to_cancel; + for (map >::iterator i = op.source_to_obj.begin(); i != op.source_to_obj.end(); ++i) { if (osdmap->is_down(i->first.osd)) { @@ -1081,10 +1081,10 @@ void ECBackend::filter_read_op( if (to_cancel.empty()) return; - for (map >::iterator i = op.source_to_obj.begin(); + for (map >::iterator i = op.source_to_obj.begin(); i != op.source_to_obj.end(); ) { - for (set::iterator j = i->second.begin(); + for (set::iterator j = i->second.begin(); j != i->second.end(); ) { if (to_cancel.count(*j)) @@ -1100,7 +1100,7 @@ void ECBackend::filter_read_op( } } - for (set::iterator i = to_cancel.begin(); + for (set::iterator i = to_cancel.begin(); i != to_cancel.end(); ++i) { get_parent()->cancel_pull(*i); @@ -1157,7 +1157,7 @@ void ECBackend::on_change() i != tid_to_read_map.end(); ++i) { dout(10) << __func__ << ": cancelling " << i->second << dendl; - for (map::iterator j = + for (map::iterator j = i->second.to_read.begin(); j != i->second.to_read.end(); ++j) { @@ -1189,7 +1189,7 @@ void ECBackend::on_flushed() void ECBackend::dump_recovery_info(Formatter *f) const { f->open_array_section("recovery_ops"); - for (map::const_iterator i = recovery_ops.begin(); + for (map::const_iterator i = recovery_ops.begin(); i != recovery_ops.end(); ++i) { f->open_object_section("op"); @@ -1267,9 +1267,9 @@ void ECBackend::submit_transaction( op->t = static_cast(_t); - set need_hinfos; + set need_hinfos; op->t->get_append_objects(&need_hinfos); - for (set::iterator i = need_hinfos.begin(); + for (set::iterator i = need_hinfos.begin(); i != need_hinfos.end(); ++i) { ECUtil::HashInfoRef ref = get_hash_info(*i); @@ -1319,7 +1319,7 @@ int ECBackend::get_min_avail_to_read_shards( bool for_recovery, set *to_read) { - map >::const_iterator miter = + map, hobject_t::BitwiseComparator>::const_iterator miter = get_parent()->get_missing_loc_shards().find(hoid); set have; @@ -1393,7 +1393,7 @@ int ECBackend::get_min_avail_to_read_shards( void ECBackend::start_read_op( int priority, - map &to_read, + map &to_read, OpRequestRef _op) { ceph_tid_t tid = get_parent()->get_tid(); @@ -1406,7 +1406,7 @@ void ECBackend::start_read_op( dout(10) << __func__ << ": starting " << op << dendl; map messages; - for (map::iterator i = op.to_read.begin(); + for (map::iterator i = op.to_read.begin(); i != op.to_read.end(); ++i) { list for_read_op; + map for_read_op; for_read_op.insert( make_pair( hoid, diff --git a/src/osd/ECBackend.h b/src/osd/ECBackend.h index 9073c1e7e5b3..e3378595ba45 100644 --- a/src/osd/ECBackend.h +++ b/src/osd/ECBackend.h @@ -231,7 +231,7 @@ private: RecoveryOp() : pending_read(false), state(IDLE) {} }; friend ostream &operator<<(ostream &lhs, const RecoveryOp &rhs); - map recovery_ops; + map recovery_ops; public: /** @@ -285,11 +285,11 @@ public: ceph_tid_t tid; OpRequestRef op; // may be null if not on behalf of a client - map to_read; - map complete; + map to_read; + map complete; - map > obj_to_source; - map > source_to_obj; + map, hobject_t::BitwiseComparator> obj_to_source; + map > source_to_obj; void dump(Formatter *f) const; @@ -305,7 +305,7 @@ public: map > shard_to_read_map; void start_read_op( int priority, - map &to_read, + map &to_read, OpRequestRef op); @@ -338,13 +338,13 @@ public: ECTransaction *t; - set temp_added; - set temp_cleared; + set temp_added; + set temp_cleared; set pending_commit; set pending_apply; - map unstable_hash_infos; + map unstable_hash_infos; ~Op() { delete t; delete on_local_applied_sync; @@ -432,7 +432,7 @@ public: const ECUtil::stripe_info_t sinfo; /// If modified, ensure that the ref is held until the update is applied - SharedPtrRegistry unstable_hashinfo_registry; + SharedPtrRegistry unstable_hashinfo_registry; ECUtil::HashInfoRef get_hash_info(const hobject_t &hoid); friend struct ReadCB; diff --git a/src/osd/ECMsgTypes.cc b/src/osd/ECMsgTypes.cc index cf63611a2d64..0dc65b03081a 100644 --- a/src/osd/ECMsgTypes.cc +++ b/src/osd/ECMsgTypes.cc @@ -159,8 +159,8 @@ void ECSubRead::encode(bufferlist &bl, uint64_t features) const ENCODE_START(1, 1, bl); ::encode(from, bl); ::encode(tid, bl); - map > > tmp; - for (map > >::const_iterator m = to_read.begin(); + map >, hobject_t::BitwiseComparator> tmp; + for (map >, hobject_t::BitwiseComparator>::const_iterator m = to_read.begin(); m != to_read.end(); ++m) { list > tlist; for (list >::const_iterator l = m->second.begin(); @@ -189,9 +189,9 @@ void ECSubRead::decode(bufferlist::iterator &bl) ::decode(from, bl); ::decode(tid, bl); if (struct_v == 1) { - map > >tmp; + map >, hobject_t::BitwiseComparator>tmp; ::decode(tmp, bl); - for (map > >::const_iterator m = tmp.begin(); + for (map >, hobject_t::BitwiseComparator>::const_iterator m = tmp.begin(); m != tmp.end(); ++m) { list > tlist; for (list > ::const_iterator l = m->second.begin(); @@ -221,7 +221,7 @@ void ECSubRead::dump(Formatter *f) const f->dump_stream("from") << from; f->dump_unsigned("tid", tid); f->open_array_section("objects"); - for (map > >::const_iterator i = + for (map >, hobject_t::BitwiseComparator>::const_iterator i = to_read.begin(); i != to_read.end(); ++i) { @@ -244,7 +244,7 @@ void ECSubRead::dump(Formatter *f) const f->close_section(); f->open_array_section("object_attrs_requested"); - for (set::const_iterator i = attrs_to_read.begin(); + for (set::const_iterator i = attrs_to_read.begin(); i != attrs_to_read.end(); ++i) { f->open_object_section("object"); @@ -310,7 +310,7 @@ void ECSubReadReply::dump(Formatter *f) const f->dump_stream("from") << from; f->dump_unsigned("tid", tid); f->open_array_section("buffers_read"); - for (map > >::const_iterator i = + for (map >, hobject_t::BitwiseComparator>::const_iterator i = buffers_read.begin(); i != buffers_read.end(); ++i) { @@ -332,7 +332,7 @@ void ECSubReadReply::dump(Formatter *f) const f->close_section(); f->open_array_section("attrs_returned"); - for (map >::const_iterator i = + for (map, hobject_t::BitwiseComparator>::const_iterator i = attrs_read.begin(); i != attrs_read.end(); ++i) { @@ -353,7 +353,7 @@ void ECSubReadReply::dump(Formatter *f) const f->close_section(); f->open_array_section("errors"); - for (map::const_iterator i = errors.begin(); + for (map::const_iterator i = errors.begin(); i != errors.end(); ++i) { f->open_object_section("error_pair"); diff --git a/src/osd/ECMsgTypes.h b/src/osd/ECMsgTypes.h index 53d1b95de144..cc41c5a338ca 100644 --- a/src/osd/ECMsgTypes.h +++ b/src/osd/ECMsgTypes.h @@ -31,8 +31,8 @@ struct ECSubWrite { eversion_t trim_to; eversion_t trim_rollback_to; vector log_entries; - set temp_added; - set temp_removed; + set temp_added; + set temp_removed; boost::optional updated_hit_set_history; ECSubWrite() : tid(0) {} ECSubWrite( @@ -47,8 +47,8 @@ struct ECSubWrite { eversion_t trim_rollback_to, vector log_entries, boost::optional updated_hit_set_history, - const set &temp_added, - const set &temp_removed) + const set &temp_added, + const set &temp_removed) : from(from), tid(tid), reqid(reqid), soid(soid), stats(stats), t(t), at_version(at_version), @@ -100,8 +100,8 @@ WRITE_CLASS_ENCODER(ECSubWriteReply) struct ECSubRead { pg_shard_t from; ceph_tid_t tid; - map > > to_read; - set attrs_to_read; + map >, hobject_t::BitwiseComparator> to_read; + set attrs_to_read; void encode(bufferlist &bl, uint64_t features) const; void decode(bufferlist::iterator &bl); void dump(Formatter *f) const; @@ -112,9 +112,9 @@ WRITE_CLASS_ENCODER_FEATURES(ECSubRead) struct ECSubReadReply { pg_shard_t from; ceph_tid_t tid; - map > > buffers_read; - map > attrs_read; - map errors; + map >, hobject_t::BitwiseComparator> buffers_read; + map, hobject_t::BitwiseComparator> attrs_read; + map errors; void encode(bufferlist &bl) const; void decode(bufferlist::iterator &bl); void dump(Formatter *f) const; diff --git a/src/osd/ECTransaction.cc b/src/osd/ECTransaction.cc index 1db2352e3189..c5d39eb50106 100644 --- a/src/osd/ECTransaction.cc +++ b/src/osd/ECTransaction.cc @@ -23,8 +23,8 @@ #include "os/ObjectStore.h" struct AppendObjectsGenerator: public boost::static_visitor { - set *out; - AppendObjectsGenerator(set *out) : out(out) {} + set *out; + AppendObjectsGenerator(set *out) : out(out) {} void operator()(const ECTransaction::AppendOp &op) { out->insert(op.oid); } @@ -51,31 +51,31 @@ struct AppendObjectsGenerator: public boost::static_visitor { void operator()(const ECTransaction::NoOp &op) {} }; void ECTransaction::get_append_objects( - set *out) const + set *out) const { AppendObjectsGenerator gen(out); reverse_visit(gen); } struct TransGenerator : public boost::static_visitor { - map &hash_infos; + map &hash_infos; ErasureCodeInterfaceRef &ecimpl; const pg_t pgid; const ECUtil::stripe_info_t sinfo; map *trans; set want; - set *temp_added; - set *temp_removed; + set *temp_added; + set *temp_removed; stringstream *out; TransGenerator( - map &hash_infos, + map &hash_infos, ErasureCodeInterfaceRef &ecimpl, pg_t pgid, const ECUtil::stripe_info_t &sinfo, map *trans, - set *temp_added, - set *temp_removed, + set *temp_added, + set *temp_removed, stringstream *out) : hash_infos(hash_infos), ecimpl(ecimpl), pgid(pgid), @@ -273,13 +273,13 @@ struct TransGenerator : public boost::static_visitor { void ECTransaction::generate_transactions( - map &hash_infos, + map &hash_infos, ErasureCodeInterfaceRef &ecimpl, pg_t pgid, const ECUtil::stripe_info_t &sinfo, map *transactions, - set *temp_added, - set *temp_removed, + set *temp_added, + set *temp_removed, stringstream *out) const { TransGenerator gen( diff --git a/src/osd/ECTransaction.h b/src/osd/ECTransaction.h index 1404b93a73b9..2615226885d2 100644 --- a/src/osd/ECTransaction.h +++ b/src/osd/ECTransaction.h @@ -194,15 +194,15 @@ public: } } void get_append_objects( - set *out) const; + set *out) const; void generate_transactions( - map &hash_infos, + map &hash_infos, ErasureCodeInterfaceRef &ecimpl, pg_t pgid, const ECUtil::stripe_info_t &sinfo, map *transactions, - set *temp_added, - set *temp_removed, + set *temp_added, + set *temp_removed, stringstream *out = 0) const; }; diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 8fc2bd10f775..1cf9c838d142 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -5189,9 +5189,9 @@ void OSD::do_command(Connection *con, ceph_tid_t tid, vector& cmd, buffe pg->lock(); fout << *pg << std::endl; - std::map::const_iterator mend = + std::map::const_iterator mend = pg->pg_log.get_missing().missing.end(); - std::map::const_iterator mi = + std::map::const_iterator mi = pg->pg_log.get_missing().missing.begin(); for (; mi != mend; ++mi) { fout << mi->first << " -> " << mi->second << std::endl; diff --git a/src/osd/OSD.h b/src/osd/OSD.h index 319e265fdc0e..d005e713091b 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -647,7 +647,7 @@ public: bool agent_valid_iterator; int agent_ops; int flush_mode_high_count; //once have one pg with FLUSH_MODE_HIGH then flush objects with high speed - set agent_oids; + set agent_oids; bool agent_active; struct AgentThread : public Thread { OSDService *osd; @@ -2153,7 +2153,7 @@ protected: utime_t defer_recovery_until; int recovery_ops_active; #ifdef DEBUG_RECOVERY_OIDS - map > recovery_oids; + map > recovery_oids; #endif struct RecoveryWQ : public ThreadPool::WorkQueue { diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 126d768ff9f4..cadb8ffc318e 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -307,7 +307,7 @@ void PG::proc_replica_log( dout(10) << " peer osd." << from << " now " << oinfo << " " << omissing << dendl; might_have_unfound.insert(from); - for (map::iterator i = omissing.missing.begin(); + for (map::iterator i = omissing.missing.begin(); i != omissing.missing.end(); ++i) { dout(20) << " after missing " << i->first << " need " << i->second.need @@ -464,7 +464,7 @@ void PG::MissingLoc::add_batch_sources_info( const set &sources) { dout(10) << __func__ << ": adding sources in batch " << sources.size() << dendl; - for (map::const_iterator i = needs_recovery_map.begin(); + for (map::const_iterator i = needs_recovery_map.begin(); i != needs_recovery_map.end(); ++i) { missing_loc[i->first].insert(sources.begin(), sources.end()); @@ -481,7 +481,7 @@ bool PG::MissingLoc::add_source_info( { bool found_missing = false; // found items? - for (map::const_iterator p = needs_recovery_map.begin(); + for (map::const_iterator p = needs_recovery_map.begin(); p != needs_recovery_map.end(); ++p) { const hobject_t &soid(p->first); @@ -3140,9 +3140,9 @@ void PG::filter_snapc(vector &snaps) } } -void PG::requeue_object_waiters(map >& m) +void PG::requeue_object_waiters(map, hobject_t::BitwiseComparator>& m) { - for (map >::iterator it = m.begin(); + for (map, hobject_t::BitwiseComparator>::iterator it = m.begin(); it != m.end(); ++it) requeue_ops(it->second); @@ -3512,7 +3512,7 @@ void PG::_scan_rollback_obs( void PG::_scan_snaps(ScrubMap &smap) { - for (map::iterator i = smap.objects.begin(); + for (map::iterator i = smap.objects.begin(); i != smap.objects.end(); ++i) { const hobject_t &hoid = i->first; @@ -4103,7 +4103,7 @@ void PG::scrub_compare_maps() // construct authoritative scrub map for type specific scrubbing ScrubMap authmap(scrubber.primary_scrubmap); - map > missing_digest; + map, hobject_t::BitwiseComparator> missing_digest; if (acting.size() > 1) { dout(10) << __func__ << " comparing replica scrub maps" << dendl; @@ -4111,7 +4111,7 @@ void PG::scrub_compare_maps() stringstream ss; // Map from object with errors to good peer - map > authoritative; + map, hobject_t::BitwiseComparator> authoritative; map maps; dout(2) << __func__ << " osd." << acting[0] << " has " @@ -4150,7 +4150,7 @@ void PG::scrub_compare_maps() osd->clog->error(ss); } - for (map >::iterator i = authoritative.begin(); + for (map, hobject_t::BitwiseComparator>::iterator i = authoritative.begin(); i != authoritative.end(); ++i) { list > good_peers; @@ -4165,7 +4165,7 @@ void PG::scrub_compare_maps() good_peers)); } - for (map >::iterator i = authoritative.begin(); + for (map, hobject_t::BitwiseComparator>::iterator i = authoritative.begin(); i != authoritative.end(); ++i) { authmap.objects.erase(i->first); @@ -4194,7 +4194,7 @@ void PG::scrub_process_inconsistent() osd->clog->error(ss); if (repair) { state_clear(PG_STATE_CLEAN); - for (map > >::iterator i = + for (map >, hobject_t::BitwiseComparator>::iterator i = scrubber.authoritative.begin(); i != scrubber.authoritative.end(); ++i) { diff --git a/src/osd/PG.h b/src/osd/PG.h index 8e4de79de14c..07d26fdd1e92 100644 --- a/src/osd/PG.h +++ b/src/osd/PG.h @@ -312,8 +312,8 @@ public: ghobject_t pgmeta_oid; class MissingLoc { - map needs_recovery_map; - map > missing_loc; + map needs_recovery_map; + map, hobject_t::BitwiseComparator > missing_loc; set missing_loc_sources; PG *pg; set empty_set; @@ -332,7 +332,7 @@ public: bool needs_recovery( const hobject_t &hoid, eversion_t *v = 0) const { - map::const_iterator i = + map::const_iterator i = needs_recovery_map.find(hoid); if (i == needs_recovery_map.end()) return false; @@ -350,7 +350,7 @@ public: const set &acting) const; uint64_t num_unfound() const { uint64_t ret = 0; - for (map::const_iterator i = + for (map::const_iterator i = needs_recovery_map.begin(); i != needs_recovery_map.end(); ++i) { @@ -373,11 +373,11 @@ public: missing_loc[hoid].erase(location); } void add_active_missing(const pg_missing_t &missing) { - for (map::const_iterator i = + for (map::const_iterator i = missing.missing.begin(); i != missing.missing.end(); ++i) { - map::const_iterator j = + map::const_iterator j = needs_recovery_map.find(i->first); if (j == needs_recovery_map.end()) { needs_recovery_map.insert(*i); @@ -422,10 +422,10 @@ public: return missing_loc.count(hoid) ? missing_loc.find(hoid)->second : empty_set; } - const map > &get_missing_locs() const { + const map, hobject_t::BitwiseComparator> &get_missing_locs() const { return missing_loc; } - const map &get_needs_recovery() const { + const map &get_needs_recovery() const { return needs_recovery_map; } } missing_loc; @@ -443,7 +443,7 @@ public: int recovery_ops_active; set waiting_on_backfill; #ifdef DEBUG_RECOVERY_OIDS - set recovering_oids; + set recovering_oids; #endif utime_t replay_until; @@ -653,7 +653,7 @@ protected: struct BackfillInterval { // info about a backfill interval on a peer eversion_t version; /// version at which the scan occurred - map objects; + map objects; hobject_t begin; hobject_t end; @@ -705,7 +705,7 @@ protected: f->dump_stream("begin") << begin; f->dump_stream("end") << end; f->open_array_section("objects"); - for (map::const_iterator i = objects.begin(); + for (map::const_iterator i = objects.begin(); i != objects.end(); ++i) { f->open_object_section("object"); @@ -745,11 +745,11 @@ protected: list waiting_for_cache_not_full; list waiting_for_all_missing; - map > waiting_for_unreadable_object, + map, hobject_t::BitwiseComparator> waiting_for_unreadable_object, waiting_for_degraded_object, waiting_for_blocked_object; // Callbacks should assume pg (and nothing else) is locked - map > callbacks_for_degraded_object; + map, hobject_t::BitwiseComparator> callbacks_for_degraded_object; map > > waiting_for_ack, waiting_for_ondisk; @@ -757,7 +757,7 @@ protected: map replay_queue; void split_ops(PG *child, unsigned split_bits); - void requeue_object_waiters(map >& m); + void requeue_object_waiters(map, hobject_t::BitwiseComparator>& m); void requeue_op(OpRequestRef op); void requeue_ops(list &l); @@ -882,7 +882,7 @@ public: struct PGLogEntryHandler : public PGLog::LogEntryHandler { list to_rollback; - set to_remove; + set to_remove; list to_trim; // LogEntryHandler @@ -905,7 +905,7 @@ public: SnapRollBacker rollbacker(j->soid, pg, t); j->mod_desc.visit(&rollbacker); } - for (set::iterator i = to_remove.begin(); + for (set::iterator i = to_remove.begin(); i != to_remove.end(); ++i) { pg->get_pgbackend()->rollback_create(*i, t); @@ -1072,11 +1072,11 @@ public: bool must_scrub, must_deep_scrub, must_repair; // Maps from objects with errors to missing/inconsistent peers - map > missing; - map > inconsistent; + map, hobject_t::BitwiseComparator> missing; + map, hobject_t::BitwiseComparator> inconsistent; // Map from object with errors to good peers - map > > authoritative; + map >, hobject_t::BitwiseComparator> authoritative; // digest updates which we are waiting on int num_digest_updates_pending; @@ -1211,7 +1211,7 @@ public: const hobject_t &begin, const hobject_t &end) = 0; virtual void _scrub( ScrubMap &map, - const std::map > &missing_digest) { } + const std::map, hobject_t::BitwiseComparator> &missing_digest) { } virtual void _scrub_clear_state() { } virtual void _scrub_finish() { } virtual void split_colls( diff --git a/src/osd/PGBackend.cc b/src/osd/PGBackend.cc index 3b6166b3a6d0..941569e774b5 100644 --- a/src/osd/PGBackend.cc +++ b/src/osd/PGBackend.cc @@ -84,7 +84,7 @@ void PGBackend::on_change_cleanup(ObjectStore::Transaction *t) { dout(10) << __func__ << dendl; // clear temp - for (set::iterator i = temp_contents.begin(); + for (set::iterator i = temp_contents.begin(); i != temp_contents.end(); ++i) { dout(10) << __func__ << ": Removing oid " @@ -449,7 +449,7 @@ map::const_iterator for (map::const_iterator j = maps.begin(); j != maps.end(); ++j) { - map::iterator i = + map::iterator i = j->second->objects.find(obj); if (i == j->second->objects.end()) { continue; @@ -535,18 +535,18 @@ void PGBackend::be_compare_scrubmaps( const map &maps, bool okseed, bool repair, - map > &missing, - map > &inconsistent, - map > &authoritative, - map > &missing_digest, + map, hobject_t::BitwiseComparator> &missing, + map, hobject_t::BitwiseComparator> &inconsistent, + map, hobject_t::BitwiseComparator> &authoritative, + map, hobject_t::BitwiseComparator> &missing_digest, int &shallow_errors, int &deep_errors, const spg_t& pgid, const vector &acting, ostream &errorstream) { - map::const_iterator i; - map::const_iterator j; - set master_set; + map::const_iterator i; + map::const_iterator j; + set master_set; utime_t now = ceph_clock_now(NULL); // Construct master set @@ -557,7 +557,7 @@ void PGBackend::be_compare_scrubmaps( } // Check maps against master set and each other - for (set::const_iterator k = master_set.begin(); + for (set::const_iterator k = master_set.begin(); k != master_set.end(); ++k) { object_info_t auth_oi; diff --git a/src/osd/PGBackend.h b/src/osd/PGBackend.h index faedea896509..2ee793c4418b 100644 --- a/src/osd/PGBackend.h +++ b/src/osd/PGBackend.h @@ -117,7 +117,7 @@ virtual std::string gen_dbg_prefix() const = 0; - virtual const map > &get_missing_loc_shards() + virtual const map, hobject_t::BitwiseComparator> &get_missing_loc_shards() const = 0; virtual const pg_missing_t &get_local_missing() const = 0; @@ -326,20 +326,20 @@ virtual void dump_recovery_info(Formatter *f) const = 0; private: - set temp_contents; + set temp_contents; public: // Track contents of temp collection, clear on reset void add_temp_obj(const hobject_t &oid) { temp_contents.insert(oid); } - void add_temp_objs(const set &oids) { + void add_temp_objs(const set &oids) { temp_contents.insert(oids.begin(), oids.end()); } void clear_temp_obj(const hobject_t &oid) { temp_contents.erase(oid); } - void clear_temp_objs(const set &oids) { - for (set::const_iterator i = oids.begin(); + void clear_temp_objs(const set &oids) { + for (set::const_iterator i = oids.begin(); i != oids.end(); ++i) { temp_contents.erase(*i); @@ -564,10 +564,10 @@ const map &maps, bool okseed, ///< true if scrub digests have same seed our oi digests bool repair, - map > &missing, - map > &inconsistent, - map > &authoritative, - map > &missing_digest, + map, hobject_t::BitwiseComparator> &missing, + map, hobject_t::BitwiseComparator> &inconsistent, + map, hobject_t::BitwiseComparator> &authoritative, + map, hobject_t::BitwiseComparator> &missing_digest, int &shallow_errors, int &deep_errors, const spg_t& pgid, const vector &acting, diff --git a/src/osd/PGLog.cc b/src/osd/PGLog.cc index 0347a779e9e5..b7062378ae74 100644 --- a/src/osd/PGLog.cc +++ b/src/osd/PGLog.cc @@ -210,7 +210,7 @@ void PGLog::proc_replica_log( we will send the peer enough log to arrive at the same state. */ - for (map::iterator i = omissing.missing.begin(); + for (map::iterator i = omissing.missing.begin(); i != omissing.missing.end(); ++i) { dout(20) << " before missing " << i->first << " need " << i->second.need @@ -565,7 +565,7 @@ void PGLog::merge_log(ObjectStore::Transaction& t, // The logs must overlap. assert(log.head >= olog.tail && olog.head >= log.tail); - for (map::iterator i = missing.missing.begin(); + for (map::iterator i = missing.missing.begin(); i != missing.missing.end(); ++i) { dout(20) << "pg_missing_t sobject: " << i->first << dendl; @@ -929,7 +929,7 @@ void PGLog::read_log(ObjectStore *store, coll_t pg_coll, dout(10) << "read_log checking for missing items over interval (" << info.last_complete << "," << info.last_update << "]" << dendl; - set did; + set did; for (list::reverse_iterator i = log.log.rbegin(); i != log.log.rend(); ++i) { diff --git a/src/osd/PGLog.h b/src/osd/PGLog.h index 00cba0d70c60..2d90c13865db 100644 --- a/src/osd/PGLog.h +++ b/src/osd/PGLog.h @@ -389,8 +389,8 @@ public: const pg_missing_t& get_missing() const { return missing; } - void missing_got(map::const_iterator m) { - map::iterator p = missing.missing.find(m->first); + void missing_got(map::const_iterator m) { + map::iterator p = missing.missing.find(m->first); missing.got(p); } @@ -406,8 +406,8 @@ public: missing.add(oid, need, have); } - void missing_rm(map::const_iterator m) { - map::iterator p = missing.missing.find(m->first); + void missing_rm(map::const_iterator m) { + map::iterator p = missing.missing.find(m->first); missing.rm(p); } @@ -550,7 +550,7 @@ public: protected: static void split_by_object( list &entries, - map > *out_entries) { + map, hobject_t::BitwiseComparator> *out_entries) { while (!entries.empty()) { list &out_list = (*out_entries)[entries.front().soid]; out_list.splice(out_list.end(), entries, entries.begin()); @@ -583,9 +583,9 @@ protected: map *priors, ///< [out] target for new priors LogEntryHandler *rollbacker ///< [in] optional rollbacker object ) { - map > split; + map, hobject_t::BitwiseComparator > split; split_by_object(entries, &split); - for (map >::iterator i = split.begin(); + for (map, hobject_t::BitwiseComparator>::iterator i = split.begin(); i != split.end(); ++i) { boost::optional > new_divergent_prior; diff --git a/src/osd/ReplicatedBackend.cc b/src/osd/ReplicatedBackend.cc index 2015dd0b6f5e..b24aa9d09ef1 100644 --- a/src/osd/ReplicatedBackend.cc +++ b/src/osd/ReplicatedBackend.cc @@ -108,13 +108,13 @@ void ReplicatedBackend::recover_object( void ReplicatedBackend::check_recovery_sources(const OSDMapRef osdmap) { - for(map >::iterator i = pull_from_peer.begin(); + for(map >::iterator i = pull_from_peer.begin(); i != pull_from_peer.end(); ) { if (osdmap->is_down(i->first.osd)) { dout(10) << "check_recovery_sources resetting pulls from osd." << i->first << ", osdmap has it marked down" << dendl; - for (set::iterator j = i->second.begin(); + for (set::iterator j = i->second.begin(); j != i->second.end(); ++j) { assert(pulling.count(*j) == 1); @@ -305,8 +305,8 @@ void ReplicatedBackend::objects_read_async( class RPGTransaction : public PGBackend::PGTransaction { coll_t coll; - set temp_added; - set temp_cleared; + set temp_added; + set temp_cleared; ObjectStore::Transaction *t; uint64_t written; const coll_t &get_coll_ct(const hobject_t &hoid) { @@ -338,10 +338,10 @@ public: t = 0; return _t; } - const set &get_temp_added() { + const set &get_temp_added() { return temp_added; } - const set &get_temp_cleared() { + const set &get_temp_cleared() { return temp_cleared; } @@ -478,13 +478,13 @@ public: written += to_append->written; to_append->written = 0; t->append(*(to_append->t)); - for (set::iterator i = to_append->temp_added.begin(); + for (set::iterator i = to_append->temp_added.begin(); i != to_append->temp_added.end(); ++i) { temp_cleared.erase(*i); temp_added.insert(*i); } - for (set::iterator i = to_append->temp_cleared.begin(); + for (set::iterator i = to_append->temp_cleared.begin(); i != to_append->temp_cleared.end(); ++i) { temp_added.erase(*i); @@ -864,7 +864,7 @@ struct C_ReplicatedBackend_OnPullComplete : GenContext { to_continue.begin(); i != to_continue.end(); ++i) { - map::iterator j = + map::iterator j = bc->pulling.find(*i); assert(j != bc->pulling.end()); if (!bc->start_pushes(*i, j->second.obc, h)) { @@ -1290,7 +1290,7 @@ void ReplicatedBackend::calc_head_subsets( const pg_missing_t& missing, const hobject_t &last_backfill, interval_set& data_subset, - map >& clone_subsets) + map, hobject_t::BitwiseComparator>& clone_subsets) { dout(10) << "calc_head_subsets " << head << " clone_overlap " << snapset.clone_overlap << dendl; @@ -1350,7 +1350,7 @@ void ReplicatedBackend::calc_clone_subsets( const pg_missing_t& missing, const hobject_t &last_backfill, interval_set& data_subset, - map >& clone_subsets) + map, hobject_t::BitwiseComparator>& clone_subsets) { dout(10) << "calc_clone_subsets " << soid << " clone_overlap " << snapset.clone_overlap << dendl; @@ -1438,11 +1438,11 @@ void ReplicatedBackend::prepare_pull( eversion_t _v = get_parent()->get_local_missing().missing.find( soid)->second.need; assert(_v == v); - const map > &missing_loc( + const map, hobject_t::BitwiseComparator> &missing_loc( get_parent()->get_missing_loc_shards()); const map &peer_missing( get_parent()->get_shard_missing()); - map >::const_iterator q = missing_loc.find(soid); + map, hobject_t::BitwiseComparator>::const_iterator q = missing_loc.find(soid); assert(q != missing_loc.end()); assert(!q->second.empty()); @@ -1534,7 +1534,7 @@ void ReplicatedBackend::prep_push_to_replica( dout(10) << __func__ << ": " << soid << " v" << oi.version << " size " << size << " to osd." << peer << dendl; - map > clone_subsets; + map, hobject_t::BitwiseComparator> clone_subsets; interval_set data_subset; // are we doing a clone on the replica? @@ -1592,7 +1592,7 @@ void ReplicatedBackend::prep_push(ObjectContextRef obc, interval_set data_subset; if (obc->obs.oi.size) data_subset.insert(0, obc->obs.oi.size); - map > clone_subsets; + map, hobject_t::BitwiseComparator> clone_subsets; prep_push(obc, soid, peer, obc->obs.oi.version, data_subset, clone_subsets, @@ -1604,7 +1604,7 @@ void ReplicatedBackend::prep_push( const hobject_t& soid, pg_shard_t peer, eversion_t version, interval_set &data_subset, - map >& clone_subsets, + map, hobject_t::BitwiseComparator>& clone_subsets, PushOp *pop) { get_parent()->begin_peer_recover(peer, soid); @@ -1730,7 +1730,7 @@ void ReplicatedBackend::submit_push_data( void ReplicatedBackend::submit_push_complete(ObjectRecoveryInfo &recovery_info, ObjectStore::Transaction *t) { - for (map >::const_iterator p = + for (map, hobject_t::BitwiseComparator>::const_iterator p = recovery_info.clone_subset.begin(); p != recovery_info.clone_subset.end(); ++p) { diff --git a/src/osd/ReplicatedBackend.h b/src/osd/ReplicatedBackend.h index 55bef8de5dab..216067561e62 100644 --- a/src/osd/ReplicatedBackend.h +++ b/src/osd/ReplicatedBackend.h @@ -97,14 +97,14 @@ public: virtual void dump_recovery_info(Formatter *f) const { { f->open_array_section("pull_from_peer"); - for (map >::const_iterator i = pull_from_peer.begin(); + for (map >::const_iterator i = pull_from_peer.begin(); i != pull_from_peer.end(); ++i) { f->open_object_section("pulling_from"); f->dump_stream("pull_from") << i->first; { f->open_array_section("pulls"); - for (set::const_iterator j = i->second.begin(); + for (set::const_iterator j = i->second.begin(); j != i->second.end(); ++j) { f->open_object_section("pull_info"); @@ -120,7 +120,7 @@ public: } { f->open_array_section("pushing"); - for (map >::const_iterator i = + for (map, hobject_t::BitwiseComparator>::const_iterator i = pushing.begin(); i != pushing.end(); ++i) { @@ -182,7 +182,7 @@ private: } } }; - map > pushing; + map, hobject_t::BitwiseComparator> pushing; // pull struct PullInfo { @@ -210,10 +210,10 @@ private: } }; - map pulling; + map pulling; // Reverse mapping from osd peer to objects beging pulled from that peer - map > pull_from_peer; + map > pull_from_peer; void sub_op_push(OpRequestRef op); void sub_op_push_reply(OpRequestRef op); @@ -279,7 +279,7 @@ private: SnapSet& snapset, const hobject_t& poid, const pg_missing_t& missing, const hobject_t &last_backfill, interval_set& data_subset, - map >& clone_subsets); + map, hobject_t::BitwiseComparator>& clone_subsets); void prepare_pull( eversion_t v, const hobject_t& soid, @@ -299,13 +299,13 @@ private: const hobject_t& soid, pg_shard_t peer, eversion_t version, interval_set &data_subset, - map >& clone_subsets, + map, hobject_t::BitwiseComparator>& clone_subsets, PushOp *op); void calc_head_subsets(ObjectContextRef obc, SnapSet& snapset, const hobject_t& head, const pg_missing_t& missing, const hobject_t &last_backfill, interval_set& data_subset, - map >& clone_subsets); + map, hobject_t::BitwiseComparator>& clone_subsets); ObjectRecoveryInfo recalc_subsets( const ObjectRecoveryInfo& recovery_info, SnapSetContext *ssc diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 33832aa8043e..ee3d9a059326 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -280,7 +280,7 @@ void ReplicatedPG::on_global_recover( missing_loc.recovered(soid); publish_stats_to_osd(); dout(10) << "pushed " << soid << " to all replicas" << dendl; - map::iterator i = recovering.find(soid); + map::iterator i = recovering.find(soid); assert(i != recovering.end()); // recover missing won't have had an obc, but it gets filled in @@ -380,7 +380,7 @@ void ReplicatedPG::wait_for_unreadable_object( bool needs_recovery = missing_loc.needs_recovery(soid, &v); assert(needs_recovery); - map::const_iterator p = recovering.find(soid); + map::const_iterator p = recovering.find(soid); if (p != recovering.end()) { dout(7) << "missing " << soid << " v " << v << ", already recovering." << dendl; } else if (missing_loc.is_unfound(soid)) { @@ -711,7 +711,7 @@ int ReplicatedPG::do_command(cmdmap_t cmdmap, ostream& ss, } f->dump_int("num_missing", missing.num_missing()); f->dump_int("num_unfound", get_num_unfound()); - map::const_iterator p = missing.missing.upper_bound(offset); + map::const_iterator p = missing.missing.upper_bound(offset); { f->open_array_section("objects"); int32_t num = 0; @@ -842,7 +842,7 @@ void ReplicatedPG::do_pg_op(OpRequestRef op) } assert(snapid == CEPH_NOSNAP || pg_log.get_missing().missing.empty()); - map::const_iterator missing_iter = + map::const_iterator missing_iter = pg_log.get_missing().missing.lower_bound(current); vector::iterator ls_iter = sentries.begin(); hobject_t _max = hobject_t::get_max(); @@ -999,7 +999,7 @@ void ReplicatedPG::do_pg_op(OpRequestRef op) } assert(snapid == CEPH_NOSNAP || pg_log.get_missing().missing.empty()); - map::const_iterator missing_iter = + map::const_iterator missing_iter = pg_log.get_missing().missing.lower_bound(current); vector::iterator ls_iter = sentries.begin(); hobject_t _max = hobject_t::get_max(); @@ -1588,7 +1588,7 @@ void ReplicatedPG::do_op(OpRequestRef& op) } // src_oids - map src_obc; + map src_obc; for (vector::iterator p = m->ops.begin(); p != m->ops.end(); ++p) { OSDOp& osd_op = *p; @@ -1712,7 +1712,7 @@ void ReplicatedPG::do_op(OpRequestRef& op) // verify there is in fact a flush in progress // FIXME: we could make this a stronger test. - map::iterator p = flush_ops.find(obc->obs.oi.soid); + map::iterator p = flush_ops.find(obc->obs.oi.soid); if (p == flush_ops.end()) { dout(10) << __func__ << " no flush in progress, aborting" << dendl; reply_ctx(ctx, -EINVAL); @@ -2069,7 +2069,7 @@ void ReplicatedPG::finish_proxy_read(hobject_t oid, ceph_tid_t tid, int r) } proxyread_ops.erase(tid); - map >::iterator q = in_progress_proxy_reads.find(oid); + map, hobject_t::BitwiseComparator>::iterator q = in_progress_proxy_reads.find(oid); if (q == in_progress_proxy_reads.end()) { dout(10) << __func__ << " no in_progress_proxy_reads found" << dendl; return; @@ -2098,7 +2098,7 @@ void ReplicatedPG::finish_proxy_read(hobject_t oid, ceph_tid_t tid, int r) void ReplicatedPG::kick_proxy_read_blocked(hobject_t& soid) { - map >::iterator p = in_progress_proxy_reads.find(soid); + map, hobject_t::BitwiseComparator>::iterator p = in_progress_proxy_reads.find(soid); if (p == in_progress_proxy_reads.end()) return; @@ -2130,7 +2130,7 @@ void ReplicatedPG::cancel_proxy_read_ops(bool requeue) } if (requeue) { - map >::iterator p = + map, hobject_t::BitwiseComparator>::iterator p = in_progress_proxy_reads.begin(); while (p != in_progress_proxy_reads.end()) { list& ls = p->second; @@ -2192,7 +2192,7 @@ void ReplicatedPG::promote_object(ObjectContextRef obc, * for this case we don't use DONTNEED. */ unsigned src_fadvise_flags = LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL; - map >::iterator q = in_progress_proxy_reads.find(obc->obs.oi.soid); + map, hobject_t::BitwiseComparator>::iterator q = in_progress_proxy_reads.find(obc->obs.oi.soid); if (q == in_progress_proxy_reads.end()) { src_fadvise_flags |= LIBRADOS_OP_FLAG_FADVISE_DONTNEED; } @@ -2222,7 +2222,7 @@ void ReplicatedPG::execute_ctx(OpContext *ctx) MOSDOp *m = static_cast(op->get_req()); ObjectContextRef obc = ctx->obc; const hobject_t& soid = obc->obs.oi.soid; - map& src_obc = ctx->src_obc; + map& src_obc = ctx->src_obc; // this method must be idempotent since we may call it several times // before we finally apply the resulting transaction. @@ -2272,7 +2272,7 @@ void ReplicatedPG::execute_ctx(OpContext *ctx) dout(10) << " taking ondisk_read_lock" << dendl; obc->ondisk_read_lock(); } - for (map::iterator p = src_obc.begin(); p != src_obc.end(); ++p) { + for (map::iterator p = src_obc.begin(); p != src_obc.end(); ++p) { dout(10) << " taking ondisk_read_lock for src " << p->first << dendl; p->second->ondisk_read_lock(); } @@ -2299,7 +2299,7 @@ void ReplicatedPG::execute_ctx(OpContext *ctx) dout(10) << " dropping ondisk_read_lock" << dendl; obc->ondisk_read_unlock(); } - for (map::iterator p = src_obc.begin(); p != src_obc.end(); ++p) { + for (map::iterator p = src_obc.begin(); p != src_obc.end(); ++p) { dout(10) << " dropping ondisk_read_lock for src " << p->first << dendl; p->second->ondisk_read_unlock(); } @@ -2581,9 +2581,9 @@ void ReplicatedPG::do_scan( // handle hobject_t encoding change if (bi.objects.size() && bi.objects.begin()->first.pool == -1) { - map tmp; + map tmp; tmp.swap(bi.objects); - for (map::iterator i = tmp.begin(); + for (map::iterator i = tmp.begin(); i != tmp.end(); ++i) { hobject_t first(i->first); @@ -6267,7 +6267,7 @@ void ReplicatedPG::process_copy_chunk(hobject_t oid, ceph_tid_t tid, int r) { dout(10) << __func__ << " " << oid << " tid " << tid << " " << cpp_strerror(r) << dendl; - map::iterator p = copy_ops.find(oid); + map::iterator p = copy_ops.find(oid); if (p == copy_ops.end()) { dout(10) << __func__ << " no copy_op found" << dendl; return; @@ -6678,7 +6678,7 @@ void ReplicatedPG::finish_promote(int r, CopyResults *results, // pass error to everyone blocked on this object // FIXME: this is pretty sloppy, but at this point we got // something unexpected and don't have many other options. - map >::iterator blocked_iter = + map, hobject_t::BitwiseComparator>::iterator blocked_iter = waiting_for_blocked_object.find(soid); if (blocked_iter != waiting_for_blocked_object.end()) { while (!blocked_iter->second.empty()) { @@ -6797,7 +6797,7 @@ void ReplicatedPG::cancel_copy(CopyOpRef cop, bool requeue) void ReplicatedPG::cancel_copy_ops(bool requeue) { dout(10) << __func__ << dendl; - map::iterator p = copy_ops.begin(); + map::iterator p = copy_ops.begin(); while (p != copy_ops.end()) { // requeue this op? can I queue up all of them? cancel_copy((p++)->second, requeue); @@ -6909,7 +6909,7 @@ int ReplicatedPG::start_flush( if (blocking) obc->start_block(); - map::iterator p = flush_ops.find(soid); + map::iterator p = flush_ops.find(soid); if (p != flush_ops.end()) { FlushOpRef fop = p->second; if (fop->op == op) { @@ -7063,7 +7063,7 @@ void ReplicatedPG::finish_flush(hobject_t oid, ceph_tid_t tid, int r) { dout(10) << __func__ << " " << oid << " tid " << tid << " " << cpp_strerror(r) << dendl; - map::iterator p = flush_ops.find(oid); + map::iterator p = flush_ops.find(oid); if (p == flush_ops.end()) { dout(10) << __func__ << " no flush_op found" << dendl; return; @@ -7232,7 +7232,7 @@ void ReplicatedPG::cancel_flush(FlushOpRef fop, bool requeue) void ReplicatedPG::cancel_flush_ops(bool requeue) { dout(10) << __func__ << dendl; - map::iterator p = flush_ops.begin(); + map::iterator p = flush_ops.begin(); while (p != flush_ops.end()) { cancel_flush((p++)->second, requeue); } @@ -8163,7 +8163,7 @@ void ReplicatedPG::add_object_context_to_pg_stat(ObjectContextRef obc, pg_stat_t void ReplicatedPG::kick_object_context_blocked(ObjectContextRef obc) { const hobject_t& soid = obc->obs.oi.soid; - map >::iterator p = waiting_for_blocked_object.find(soid); + map, hobject_t::BitwiseComparator>::iterator p = waiting_for_blocked_object.find(soid); if (p == waiting_for_blocked_object.end()) return; @@ -8197,7 +8197,7 @@ SnapSetContext *ReplicatedPG::get_snapset_context( { Mutex::Locker l(snapset_contexts_lock); SnapSetContext *ssc; - map::iterator p = snapset_contexts.find( + map::iterator p = snapset_contexts.find( oid.get_snapdir()); if (p != snapset_contexts.end()) { if (can_create || p->second->exists) { @@ -8520,7 +8520,7 @@ ObjectContextRef ReplicatedPG::mark_object_lost(ObjectStore::Transaction *t, { // Wake anyone waiting for this object. Now that it's been marked as lost, // we will just return an error code. - map >::iterator wmo = + map, hobject_t::BitwiseComparator>::iterator wmo = waiting_for_unreadable_object.find(oid); if (wmo != waiting_for_unreadable_object.end()) { requeue_ops(wmo->second); @@ -8572,9 +8572,9 @@ void ReplicatedPG::mark_all_unfound_lost(int what) utime_t mtime = ceph_clock_now(cct); info.last_update.epoch = get_osdmap()->get_epoch(); const pg_missing_t &missing = pg_log.get_missing(); - map::const_iterator m = + map::const_iterator m = missing_loc.get_needs_recovery().begin(); - map::const_iterator mend = + map::const_iterator mend = missing_loc.get_needs_recovery().end(); while (m != mend) { const hobject_t &oid(m->first); @@ -8903,7 +8903,7 @@ void ReplicatedPG::on_change(ObjectStore::Transaction *t) } else { waiting_for_unreadable_object.clear(); } - for (map >::iterator p = waiting_for_degraded_object.begin(); + for (map, hobject_t::BitwiseComparator>::iterator p = waiting_for_degraded_object.begin(); p != waiting_for_degraded_object.end(); waiting_for_degraded_object.erase(p++)) { if (is_primary()) @@ -8912,7 +8912,7 @@ void ReplicatedPG::on_change(ObjectStore::Transaction *t) p->second.clear(); finish_degraded_object(p->first); } - for (map >::iterator p = waiting_for_blocked_object.begin(); + for (map, hobject_t::BitwiseComparator>::iterator p = waiting_for_blocked_object.begin(); p != waiting_for_blocked_object.end(); waiting_for_blocked_object.erase(p++)) { if (is_primary()) @@ -8920,7 +8920,7 @@ void ReplicatedPG::on_change(ObjectStore::Transaction *t) else p->second.clear(); } - for (map >::iterator i = + for (map, hobject_t::BitwiseComparator>::iterator i = callbacks_for_degraded_object.begin(); i != callbacks_for_degraded_object.end(); ) { @@ -9000,14 +9000,14 @@ void ReplicatedPG::_clear_recovery_state() recovering_oids.clear(); #endif last_backfill_started = hobject_t(); - set::iterator i = backfills_in_flight.begin(); + set::iterator i = backfills_in_flight.begin(); while (i != backfills_in_flight.end()) { assert(recovering.count(*i)); backfills_in_flight.erase(i++); } list blocked_ops; - for (map::iterator i = recovering.begin(); + for (map::iterator i = recovering.begin(); i != recovering.end(); recovering.erase(i++)) { if (i->second) { @@ -9101,7 +9101,7 @@ void PG::MissingLoc::check_recovery_sources(const OSDMapRef osdmap) << missing_loc_sources << dendl; // filter missing_loc - map >::iterator p = missing_loc.begin(); + map, hobject_t::BitwiseComparator>::iterator p = missing_loc.begin(); while (p != missing_loc.end()) { set::iterator q = p->second.begin(); while (q != p->second.end()) @@ -9560,7 +9560,7 @@ int ReplicatedPG::recover_replicas(int max, ThreadPool::TPHandle &handle) } dout(10) << __func__ << ": recover_object_replicas(" << soid << ")" << dendl; - map::const_iterator r = m.missing.find(soid); + map::const_iterator r = m.missing.find(soid); started += prep_object_replica_pushes(soid, r->second.need, h); } @@ -9675,7 +9675,7 @@ int ReplicatedPG::recover_backfill( vector > > to_push; vector > to_remove; - set add_to_stat; + set add_to_stat; for (set::iterator i = backfill_targets.begin(); i != backfill_targets.end(); @@ -9860,7 +9860,7 @@ int ReplicatedPG::recover_backfill( } backfill_pos = MIN(backfill_info.begin, earliest_peer_backfill()); - for (set::iterator i = add_to_stat.begin(); + for (set::iterator i = add_to_stat.begin(); i != add_to_stat.end(); ++i) { ObjectContextRef obc = get_object_context(*i, false); @@ -9886,7 +9886,7 @@ int ReplicatedPG::recover_backfill( pgbackend->run_recovery_op(h, cct->_conf->osd_recovery_op_priority); dout(5) << "backfill_pos is " << backfill_pos << dendl; - for (set::iterator i = backfills_in_flight.begin(); + for (set::iterator i = backfills_in_flight.begin(); i != backfills_in_flight.end(); ++i) { dout(20) << *i << " is still in flight" << dendl; @@ -9896,7 +9896,7 @@ int ReplicatedPG::recover_backfill( backfill_pos : *(backfills_in_flight.begin()); hobject_t new_last_backfill = earliest_backfill(); dout(10) << "starting new_last_backfill at " << new_last_backfill << dendl; - for (map::iterator i = pending_backfill_updates.begin(); + for (map::iterator i = pending_backfill_updates.begin(); i != pending_backfill_updates.end() && i->first < next_backfill_to_complete; pending_backfill_updates.erase(i++)) { @@ -10132,7 +10132,7 @@ void ReplicatedPG::check_local() return; // just scan the log. - set did; + set did; for (list::const_reverse_iterator p = pg_log.get_log().log.rbegin(); p != pg_log.get_log().log.rend(); ++p) { @@ -11265,7 +11265,7 @@ void ReplicatedPG::_scrub_digest_updated() void ReplicatedPG::_scrub( ScrubMap &scrubmap, - const map > &missing_digest) + const map, hobject_t::BitwiseComparator> &missing_digest) { dout(10) << "_scrub" << dendl; @@ -11282,7 +11282,7 @@ void ReplicatedPG::_scrub( bufferlist last_data; - for (map::reverse_iterator p = scrubmap.objects.rbegin(); + for (map::reverse_iterator p = scrubmap.objects.rbegin(); p != scrubmap.objects.rend(); ++p) { const hobject_t& soid = p->first; @@ -11460,7 +11460,7 @@ void ReplicatedPG::_scrub( ++scrubber.shallow_errors; } - for (map >::const_iterator p = + for (map, hobject_t::BitwiseComparator>::const_iterator p = missing_digest.begin(); p != missing_digest.end(); ++p) { diff --git a/src/osd/ReplicatedPG.h b/src/osd/ReplicatedPG.h index f4d77976c7f3..ada436d28327 100644 --- a/src/osd/ReplicatedPG.h +++ b/src/osd/ReplicatedPG.h @@ -354,7 +354,7 @@ public: std::string gen_dbg_prefix() const { return gen_prefix(); } - const map > &get_missing_loc_shards() const { + const map, hobject_t::BitwiseComparator> &get_missing_loc_shards() const { return missing_loc.get_missing_locs(); } const map &get_shard_missing() const { @@ -536,7 +536,7 @@ public: interval_set modified_ranges; ObjectContextRef obc; - map src_obc; + map src_obc; ObjectContextRef clone_obc; // if we created a clone ObjectContextRef snapset_obc; // if we created/deleted a snapdir @@ -691,7 +691,7 @@ public: OpContext *ctx; ObjectContextRef obc; - map src_obc; + map src_obc; ceph_tid_t rep_tid; @@ -989,13 +989,13 @@ protected: } // projected object info - SharedLRU object_contexts; + SharedLRU object_contexts; // map from oid.snapdir() to SnapSetContext * - map snapset_contexts; + map snapset_contexts; Mutex snapset_contexts_lock; // debug order that client ops are applied - map > debug_op_order; + map, hobject_t::BitwiseComparator> debug_op_order; void populate_obc_watchers(ObjectContextRef obc); void check_blacklisted_obc_watchers(ObjectContextRef obc); @@ -1055,7 +1055,7 @@ protected: } void put_snapset_context(SnapSetContext *ssc); - map recovering; + map recovering; /* * Backfill @@ -1071,8 +1071,8 @@ protected: * - are not included in pg stats (yet) * - have their stats in pending_backfill_updates on the primary */ - set backfills_in_flight; - map pending_backfill_updates; + set backfills_in_flight; + map pending_backfill_updates; void dump_recovery_info(Formatter *f) const { f->open_array_section("backfill_targets"); @@ -1105,7 +1105,7 @@ protected: } { f->open_array_section("backfills_in_flight"); - for (set::const_iterator i = backfills_in_flight.begin(); + for (set::const_iterator i = backfills_in_flight.begin(); i != backfills_in_flight.end(); ++i) { f->dump_stream("object") << *i; @@ -1114,7 +1114,7 @@ protected: } { f->open_array_section("recovering"); - for (map::const_iterator i = recovering.begin(); + for (map::const_iterator i = recovering.begin(); i != recovering.end(); ++i) { f->dump_stream("object") << i->first; @@ -1304,7 +1304,7 @@ protected: void recover_got(hobject_t oid, eversion_t v); // -- copyfrom -- - map copy_ops; + map copy_ops; int fill_in_copy_get( OpContext *ctx, @@ -1349,7 +1349,7 @@ protected: friend struct C_Copyfrom; // -- flush -- - map flush_ops; + map flush_ops; /// start_flush takes ownership of on_flush iff ret == -EINPROGRESS int start_flush( @@ -1371,7 +1371,7 @@ protected: const hobject_t &begin, const hobject_t &end); virtual void _scrub( ScrubMap &map, - const std::map > &missing_digest); + const std::map, hobject_t::BitwiseComparator> &missing_digest); void _scrub_digest_updated(); virtual void _scrub_clear_state(); virtual void _scrub_finish(); @@ -1390,7 +1390,7 @@ protected: // -- proxyread -- map proxyread_ops; - map > in_progress_proxy_reads; + map, hobject_t::BitwiseComparator> in_progress_proxy_reads; void do_proxy_read(OpRequestRef op); void finish_proxy_read(hobject_t oid, ceph_tid_t tid, int r); diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index f557d3498973..3ed3fe60f08b 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -3384,8 +3384,8 @@ void pg_missing_t::decode(bufferlist::iterator &bl, int64_t pool) if (struct_v < 3) { // Handle hobject_t upgrade - map tmp; - for (map::iterator i = missing.begin(); + map tmp; + for (map::iterator i = missing.begin(); i != missing.end(); ) { if (!i->first.is_max() && i->first.pool == -1) { @@ -3400,7 +3400,7 @@ void pg_missing_t::decode(bufferlist::iterator &bl, int64_t pool) missing.insert(tmp.begin(), tmp.end()); } - for (map::iterator it = missing.begin(); + for (map::iterator it = missing.begin(); it != missing.end(); ++it) rmissing[it->second.need.version] = it->first; @@ -3409,7 +3409,7 @@ void pg_missing_t::decode(bufferlist::iterator &bl, int64_t pool) void pg_missing_t::dump(Formatter *f) const { f->open_array_section("missing"); - for (map::const_iterator p = missing.begin(); p != missing.end(); ++p) { + for (map::const_iterator p = missing.begin(); p != missing.end(); ++p) { f->open_object_section("item"); f->dump_stream("object") << p->first; p->second.dump(f); @@ -3465,7 +3465,7 @@ bool pg_missing_t::is_missing(const hobject_t& oid) const bool pg_missing_t::is_missing(const hobject_t& oid, eversion_t v) const { - map::const_iterator m = missing.find(oid); + map::const_iterator m = missing.find(oid); if (m == missing.end()) return false; const pg_missing_t::item &item(m->second); @@ -3476,7 +3476,7 @@ bool pg_missing_t::is_missing(const hobject_t& oid, eversion_t v) const eversion_t pg_missing_t::have_old(const hobject_t& oid) const { - map::const_iterator m = missing.find(oid); + map::const_iterator m = missing.find(oid); if (m == missing.end()) return eversion_t(); const pg_missing_t::item &item(m->second); @@ -3490,7 +3490,7 @@ eversion_t pg_missing_t::have_old(const hobject_t& oid) const void pg_missing_t::add_next_event(const pg_log_entry_t& e) { if (e.is_update()) { - map::iterator missing_it; + map::iterator missing_it; missing_it = missing.find(e.soid); bool is_missing_divergent_item = missing_it != missing.end(); if (e.prior_version == eversion_t() || e.is_clone()) { @@ -3543,12 +3543,12 @@ void pg_missing_t::add(const hobject_t& oid, eversion_t need, eversion_t have) void pg_missing_t::rm(const hobject_t& oid, eversion_t v) { - std::map::iterator p = missing.find(oid); + std::map::iterator p = missing.find(oid); if (p != missing.end() && p->second.need <= v) rm(p); } -void pg_missing_t::rm(const std::map::iterator &m) +void pg_missing_t::rm(const std::map::iterator &m) { rmissing.erase(m->second.need.version); missing.erase(m); @@ -3556,13 +3556,13 @@ void pg_missing_t::rm(const std::map::iterator &m void pg_missing_t::got(const hobject_t& oid, eversion_t v) { - std::map::iterator p = missing.find(oid); + std::map::iterator p = missing.find(oid); assert(p != missing.end()); assert(p->second.need <= v); got(p); } -void pg_missing_t::got(const std::map::iterator &m) +void pg_missing_t::got(const std::map::iterator &m) { rmissing.erase(m->second.need.version); missing.erase(m); @@ -3574,7 +3574,7 @@ void pg_missing_t::split_into( pg_missing_t *omissing) { unsigned mask = ~((~0)<::iterator i = missing.begin(); + for (map::iterator i = missing.begin(); i != missing.end(); ) { if ((i->first.get_hash() & mask) == child_pgid.m_seed) { @@ -4571,9 +4571,9 @@ void ObjectRecoveryInfo::decode(bufferlist::iterator &bl, if (struct_v < 2) { if (!soid.is_max() && soid.pool == -1) soid.pool = pool; - map > tmp; + map, hobject_t::BitwiseComparator> tmp; tmp.swap(clone_subset); - for (map >::iterator i = tmp.begin(); + for (map, hobject_t::BitwiseComparator>::iterator i = tmp.begin(); i != tmp.end(); ++i) { hobject_t first(i->first); @@ -4851,11 +4851,11 @@ void ScrubMap::merge_incr(const ScrubMap &l) assert(valid_through == l.incr_since); valid_through = l.valid_through; - for (map::const_iterator p = l.objects.begin(); + for (map::const_iterator p = l.objects.begin(); p != l.objects.end(); ++p){ if (p->second.negative) { - map::iterator q = objects.find(p->first); + map::iterator q = objects.find(p->first); if (q != objects.end()) { objects.erase(q); } @@ -4893,9 +4893,9 @@ void ScrubMap::decode(bufferlist::iterator& bl, int64_t pool) // handle hobject_t upgrade if (struct_v < 3) { - map tmp; + map tmp; tmp.swap(objects); - for (map::iterator i = tmp.begin(); + for (map::iterator i = tmp.begin(); i != tmp.end(); ++i) { hobject_t first(i->first); @@ -4911,7 +4911,7 @@ void ScrubMap::dump(Formatter *f) const f->dump_stream("valid_through") << valid_through; f->dump_stream("incremental_since") << incr_since; f->open_array_section("objects"); - for (map::const_iterator p = objects.begin(); p != objects.end(); ++p) { + for (map::const_iterator p = objects.begin(); p != objects.end(); ++p) { f->open_object_section("object"); f->dump_string("name", p->first.oid.name); f->dump_unsigned("hash", p->first.get_hash()); diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index ae2a80444916..bfe24ca2fbcc 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -2491,7 +2491,7 @@ struct pg_missing_t { }; WRITE_CLASS_ENCODER(item) - map missing; // oid -> (need v, have v) + map missing; // oid -> (need v, have v) map rmissing; // v -> oid unsigned int num_missing() const; @@ -2505,9 +2505,9 @@ struct pg_missing_t { void revise_have(hobject_t oid, eversion_t have); void add(const hobject_t& oid, eversion_t need, eversion_t have); void rm(const hobject_t& oid, eversion_t v); - void rm(const std::map::iterator &m); + void rm(const std::map::iterator &m); void got(const hobject_t& oid, eversion_t v); - void got(const std::map::iterator &m); + void got(const std::map::iterator &m); void split_into(pg_t child_pgid, unsigned split_bits, pg_missing_t *omissing); void clear() { @@ -3489,7 +3489,7 @@ struct ObjectRecoveryInfo { object_info_t oi; SnapSet ss; interval_set copy_subset; - map > clone_subset; + map, hobject_t::BitwiseComparator> clone_subset; ObjectRecoveryInfo() : size(0) { } @@ -3615,7 +3615,7 @@ struct ScrubMap { }; WRITE_CLASS_ENCODER(object) - map objects; + map objects; eversion_t valid_through; eversion_t incr_since; diff --git a/src/test/osd/TestPGLog.cc b/src/test/osd/TestPGLog.cc index 65b64ef733e1..9a63581dc358 100644 --- a/src/test/osd/TestPGLog.cc +++ b/src/test/osd/TestPGLog.cc @@ -93,7 +93,7 @@ public: pg_missing_t init; pg_missing_t final; - set toremove; + set toremove; list torollback; private: @@ -154,7 +154,7 @@ public: }; struct LogHandler : public PGLog::LogEntryHandler { - set removed; + set removed; list rolledback; void rollback( @@ -198,8 +198,8 @@ public: } { - set::const_iterator titer = tcase.toremove.begin(); - set::const_iterator hiter = handler.removed.begin(); + set::const_iterator titer = tcase.toremove.begin(); + set::const_iterator hiter = handler.removed.begin(); for (; titer != tcase.toremove.end(); ++titer, ++hiter) { EXPECT_EQ(*titer, *hiter); } diff --git a/src/test/test_snap_mapper.cc b/src/test/test_snap_mapper.cc index 7f0fae39a00c..873e88cc3aee 100644 --- a/src/test/test_snap_mapper.cc +++ b/src/test/test_snap_mapper.cc @@ -440,8 +440,8 @@ TEST_F(MapCacherTest, Random) class MapperVerifier { PausyAsyncMap *driver; boost::scoped_ptr< SnapMapper > mapper; - map > snap_to_hobject; - map > hobject_to_snap; + map > snap_to_hobject; + map, hobject_t::BitwiseComparator> hobject_to_snap; snapid_t next; uint32_t mask; uint32_t bits; @@ -493,7 +493,7 @@ public: for (set::iterator i = snaps.begin(); i != snaps.end(); ++i) { - map >::iterator j = snap_to_hobject.find(*i); + map >::iterator j = snap_to_hobject.find(*i); assert(j != snap_to_hobject.end()); j->second.insert(obj); } @@ -508,9 +508,9 @@ public: Mutex::Locker l(lock); if (snap_to_hobject.empty()) return; - map >::iterator snap = + map >::iterator snap = rand_choose(snap_to_hobject); - set hobjects = snap->second; + set hobjects = snap->second; hobject_t hoid; while (mapper->get_next_object_to_trim(snap->first, &hoid) == 0) { @@ -518,7 +518,7 @@ public: assert(hobjects.count(hoid)); hobjects.erase(hoid); - map >::iterator j = + map, hobject_t::BitwiseComparator>::iterator j = hobject_to_snap.find(hoid); assert(j->second.count(snap->first)); set old_snaps(j->second); @@ -547,12 +547,12 @@ public: Mutex::Locker l(lock); if (hobject_to_snap.empty()) return; - map >::iterator obj = + map, hobject_t::BitwiseComparator>::iterator obj = rand_choose(hobject_to_snap); for (set::iterator i = obj->second.begin(); i != obj->second.end(); ++i) { - map >::iterator j = + map >::iterator j = snap_to_hobject.find(*i); assert(j->second.count(obj->first)); j->second.erase(obj->first); @@ -571,7 +571,7 @@ public: Mutex::Locker l(lock); if (hobject_to_snap.empty()) return; - map >::iterator obj = + map, hobject_t::BitwiseComparator>::iterator obj = rand_choose(hobject_to_snap); set snaps; int r = mapper->get_snaps(obj->first, &snaps);