Skip to content

Commit cc667a5

Browse files
authored
Merge pull request ceph#59564 from Matan-B/wip-matanb-crimson-osd-release
crimson/osd: write require_osd_release only when needed Reviewed-by: Samuel Just <[email protected]>
2 parents f81f728 + 3cdde70 commit cc667a5

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

src/crimson/osd/osd.cc

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1557,10 +1557,18 @@ seastar::future<> OSD::handle_peering_op(
15571557

15581558
seastar::future<> OSD::check_osdmap_features()
15591559
{
1560+
LOG_PREFIX(OSD::check_osdmap_features);
15601561
assert(seastar::this_shard_id() == PRIMARY_CORE);
1561-
return store.write_meta(
1562-
"require_osd_release",
1563-
stringify((int)osdmap->require_osd_release));
1562+
if (osdmap->require_osd_release != last_require_osd_release) {
1563+
DEBUG("updating require_osd_release from {} to {}",
1564+
to_string(last_require_osd_release),
1565+
to_string(osdmap->require_osd_release));
1566+
last_require_osd_release = osdmap->require_osd_release;
1567+
return store.write_meta(
1568+
"require_osd_release",
1569+
stringify((int)osdmap->require_osd_release));
1570+
}
1571+
return seastar::now();
15641572
}
15651573

15661574
seastar::future<> OSD::prepare_to_stop()

src/crimson/osd/osd.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,8 @@ class OSD final : public crimson::net::Dispatcher,
234234
private:
235235
crimson::common::gate_per_shard gate;
236236

237+
ceph_release_t last_require_osd_release{ceph_release_t::unknown};
238+
237239
seastar::promise<> stop_acked;
238240
void got_stop_ack() {
239241
stop_acked.set_value();

0 commit comments

Comments
 (0)