From: Kefu Chai Date: Mon, 30 Sep 2019 08:20:37 +0000 (+0800) Subject: crimson/osd: implement ShardServices::get_hb_stamps() X-Git-Tag: v15.1.0~1371^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3138e195fae494e36dfd4d11630fd3f20cd80f3d;p=ceph.git crimson/osd: implement ShardServices::get_hb_stamps() PeeringState::proc_lease() requires a valid hb_stamps[0], which is in turned maintained by `pl`. Signed-off-by: Kefu Chai --- diff --git a/src/crimson/osd/shard_services.cc b/src/crimson/osd/shard_services.cc index e41b77ac27a0..f727c66ca24a 100644 --- a/src/crimson/osd/shard_services.cc +++ b/src/crimson/osd/shard_services.cc @@ -239,8 +239,11 @@ seastar::future<> ShardServices::osdmap_subscribe(version_t epoch, bool force_re HeartbeatStampsRef ShardServices::get_hb_stamps(int peer) { -#warning writeme - return HeartbeatStampsRef(); + auto [stamps, added] = heartbeat_stamps.try_emplace(peer); + if (added) { + stamps->second = ceph::make_ref(peer); + } + return stamps->second; } }; diff --git a/src/crimson/osd/shard_services.h b/src/crimson/osd/shard_services.h index d9a2112b6b23..407fa8a36434 100644 --- a/src/crimson/osd/shard_services.h +++ b/src/crimson/osd/shard_services.h @@ -157,6 +157,7 @@ public: return ceph::mono_clock::now() - startup_time; } HeartbeatStampsRef get_hb_stamps(int peer); + std::map heartbeat_stamps; };