]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mon: add and use OSD_PGLOG_HARDLIMIT feature bit
authorNeha Ojha <nojha@redhat.com>
Thu, 20 Dec 2018 17:27:34 +0000 (09:27 -0800)
committerNeha Ojha <nojha@redhat.com>
Fri, 4 Jan 2019 22:25:52 +0000 (14:25 -0800)
Signed-off-by: Neha Ojha <nojha@redhat.com>
src/include/ceph_features.h
src/mon/OSDMonitor.cc

index a6f6a67350b069efb208ca76ff67aec392992854..ae52850a5230ba2dec7efb38325bb45d0de298cf 100644 (file)
@@ -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
index b8b28b8ea15920e63328a20ebbebc7c07967b7f0..545855b9c64f2f40012c3d2470e3d7b52d76ddc9 100644 (file)
@@ -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";