summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/osd/ExtentCache.h2
-rw-r--r--src/osd/Session.h2
-rw-r--r--src/osd/osd_types.h5
-rw-r--r--src/osdc/Objecter.cc2
4 files changed, 5 insertions, 6 deletions
diff --git a/src/osd/ExtentCache.h b/src/osd/ExtentCache.h
index 972228cd077..7dc1d4f7263 100644
--- a/src/osd/ExtentCache.h
+++ b/src/osd/ExtentCache.h
@@ -363,7 +363,7 @@ private:
extent,
boost::intrusive::list_member_hook<>,
&extent::pin_list_member>;
- using list = boost::intrusive::list<extent, list_member_options>;
+ using list = boost::intrusive::list<extent, boost::intrusive::constant_time_size<false>, list_member_options>;
list pin_list;
~pin_state() {
ceph_assert(pin_list.empty());
diff --git a/src/osd/Session.h b/src/osd/Session.h
index 9fa9c655456..05a0119d31e 100644
--- a/src/osd/Session.h
+++ b/src/osd/Session.h
@@ -136,7 +136,7 @@ struct Session : public RefCountedObject {
ceph::mutex session_dispatch_lock =
ceph::make_mutex("Session::session_dispatch_lock");
- boost::intrusive::list<OpRequest> waiting_on_map;
+ boost::intrusive::list<OpRequest, boost::intrusive::constant_time_size<false>> waiting_on_map;
ceph::spinlock projected_epoch_lock;
epoch_t projected_epoch = 0;
diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h
index 1e92d5cd3d6..485fddead7a 100644
--- a/src/osd/osd_types.h
+++ b/src/osd/osd_types.h
@@ -1151,9 +1151,8 @@ public:
bool is_set(key_t key) const;
template<typename T>
- void set(key_t key, const T &val) {
- value_t value = val;
- opts[key] = value;
+ void set(key_t key, T &&val) {
+ opts.insert_or_assign(key, std::forward<T>(val));
}
template<typename T>
diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc
index 087b623333b..82d43bb3dde 100644
--- a/src/osdc/Objecter.cc
+++ b/src/osdc/Objecter.cc
@@ -1393,7 +1393,7 @@ void Objecter::handle_osd_map(MOSDMap *m)
for (auto& [c, ec] : p->second) {
asio::post(service.get_executor(), asio::append(std::move(c), ec));
}
- waiting_for_map.erase(p++);
+ p = waiting_for_map.erase(p);
}
monc->sub_got("osdmap", osdmap->get_epoch());