From 6b0a3ded5baabb19809618de16cdf67c925a8e5a Mon Sep 17 00:00:00 2001 From: Neha Ojha Date: Thu, 20 Dec 2018 09:27:34 -0800 Subject: [PATCH] mon: add and use OSD_PGLOG_HARDLIMIT feature bit Signed-off-by: Neha Ojha --- src/include/ceph_features.h | 2 ++ src/mon/OSDMonitor.cc | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/include/ceph_features.h b/src/include/ceph_features.h index a6f6a67350b..ae52850a523 100644 --- a/src/include/ceph_features.h +++ b/src/include/ceph_features.h @@ -107,6 +107,7 @@ DEFINE_CEPH_FEATURE_RETIRED(17, 1, INDEP_PG_MAP, JEWEL, LUMINOUS) DEFINE_CEPH_FEATURE(17, 3, OS_PERF_STAT_NS) DEFINE_CEPH_FEATURE(18, 1, CRUSH_TUNABLES) // 3.6 DEFINE_CEPH_FEATURE_RETIRED(19, 1, CHUNKY_SCRUB, JEWEL, LUMINOUS) +DEFINE_CEPH_FEATURE(19, 2, OSD_PGLOG_HARDLIMIT) DEFINE_CEPH_FEATURE_RETIRED(20, 1, MON_NULLROUTE, JEWEL, LUMINOUS) @@ -246,6 +247,7 @@ DEFINE_CEPH_FEATURE_DEPRECATED(63, 1, RESERVED_BROKEN, LUMINOUS) // client-facin CEPH_FEATURE_RECOVERY_RESERVATION_2 | \ CEPH_FEATURE_SERVER_NAUTILUS | \ CEPH_FEATURE_CEPHX_V2 | \ + CEPH_FEATURE_OSD_PGLOG_HARDLIMIT | \ 0ULL) #define CEPH_FEATURES_SUPPORTED_DEFAULT CEPH_FEATURES_ALL diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index b8b28b8ea15..545855b9c64 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -2832,7 +2832,8 @@ bool OSDMonitor::preprocess_boot(MonOpRequestRef op) goto ignore; } - if (osdmap.test_flag(CEPH_OSDMAP_PGLOG_HARDLIMIT) && + if (osdmap.require_osd_release >= CEPH_RELEASE_LUMINOUS && + osdmap.test_flag(CEPH_OSDMAP_PGLOG_HARDLIMIT) && !(m->osd_features & CEPH_FEATURE_OSD_PGLOG_HARDLIMIT)) { mon->clog->info() << "disallowing boot of OSD " << m->get_orig_source_inst() @@ -10093,8 +10094,9 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, err = -EPERM; goto reply; } - if (HAVE_FEATURE(osdmap.get_up_osd_features(), OSD_PGLOG_HARDLIMIT) - || sure) { + if (osdmap.require_osd_release >= CEPH_RELEASE_LUMINOUS && + (HAVE_FEATURE(osdmap.get_up_osd_features(), OSD_PGLOG_HARDLIMIT) + || sure)) { return prepare_set_flag(op, CEPH_OSDMAP_PGLOG_HARDLIMIT); } else { ss << "not all up OSDs have OSD_PGLOG_HARDLIMIT feature"; -- 2.39.5