From: Neha Ojha Date: Thu, 20 Dec 2018 17:27:34 +0000 (-0800) Subject: mon: add and use OSD_PGLOG_HARDLIMIT feature bit X-Git-Tag: v12.2.11~13^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=934b26293413564e3357fdc7393130981e0152a5;p=ceph.git mon: add and use OSD_PGLOG_HARDLIMIT feature bit Signed-off-by: Neha Ojha (cherry picked from commit 6b0a3ded5baabb19809618de16cdf67c925a8e5a) Conflicts: src/mon/OSDMonitor.cc: trivial resolution --- diff --git a/src/include/ceph_features.h b/src/include/ceph_features.h index bea6f49fb160..ac51eb246d5b 100755 --- a/src/include/ceph_features.h +++ b/src/include/ceph_features.h @@ -93,6 +93,7 @@ DEFINE_CEPH_FEATURE_RETIRED(17, 1, INDEP_PG_MAP, JEWEL, LUMINOUS) DEFINE_CEPH_FEATURE(18, 1, CRUSH_TUNABLES) 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) @@ -231,6 +232,7 @@ DEFINE_CEPH_FEATURE_DEPRECATED(63, 1, RESERVED_BROKEN, LUMINOUS) // client-facin CEPH_FEATURE_RADOS_BACKOFF | \ CEPH_FEATURE_OSD_RECOVERY_DELETES | \ 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 939f5b26535b..5710c3ea6127 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -2515,8 +2515,10 @@ bool OSDMonitor::preprocess_boot(MonOpRequestRef op) << " because all up OSDs are post-hammer"; 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() @@ -9375,14 +9377,15 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, goto reply; } } else if (key == "pglog_hardlimit") { - if (!osdmap.get_num_up_osds() && !sure) { + if (!osdmap.get_num_up_osds() && sure != "--yes-i-really-mean-it") { ss << "Not advisable to continue since no OSDs are up. Pass " << "--yes-i-really-mean-it if you really wish to continue."; 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 == "--yes-i-really-mean-it")) { return prepare_set_flag(op, CEPH_OSDMAP_PGLOG_HARDLIMIT); } else { ss << "not all up OSDs have OSD_PGLOG_HARDLIMIT feature";