]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: PrimaryLogPG::do_osd_ops() uses md_config_cacher_t. 20320/head
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Mon, 5 Feb 2018 14:19:47 +0000 (15:19 +0100)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Fri, 9 Feb 2018 01:46:58 +0000 (02:46 +0100)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/osd/OSD.cc
src/osd/OSD.h
src/osd/PrimaryLogPG.cc

index 78f9a65841253e78c1eaaed0074fc701245c85e0..bd5ebd0d6c8e16d6c8eb2b24a509287d3853ea9b 100644 (file)
@@ -216,6 +216,8 @@ OSDService::OSDService(OSD *osd) :
   recovery_gen_wq("recovery_gen_wq", cct->_conf->osd_recovery_thread_timeout,
                  &osd->disk_tp),
   class_handler(osd->class_handler),
+  osd_max_object_size(*cct->_conf, "osd_max_object_size"),
+  osd_skip_data_digest(*cct->_conf, "osd_skip_data_digest"),
   pg_epoch_lock("OSDService::pg_epoch_lock"),
   publish_lock("OSDService::publish_lock"),
   pre_publish_lock("OSDService::pre_publish_lock"),
index ee94a50320708ca05aa8738b34dd6017fb36fd75..1b4c250aa1157012d83d7596b53fe71ead9d1b1b 100644 (file)
@@ -25,6 +25,7 @@
 #include "common/WorkQueue.h"
 #include "common/AsyncReserver.h"
 #include "common/ceph_context.h"
+#include "common/config_cacher.h"
 #include "common/zipkin_trace.h"
 
 #include "mgr/MgrClient.h"
@@ -262,6 +263,9 @@ public:
   GenContextWQ recovery_gen_wq;
   ClassHandler  *&class_handler;
 
+  md_config_cacher_t<uint64_t> osd_max_object_size;
+  md_config_cacher_t<bool> osd_skip_data_digest;
+
   void enqueue_back(OpQueueItem&& qi);
   void enqueue_front(OpQueueItem&& qi);
 
index 85056b44db6a53c998ccd9c5288894a09cb38d28..fca25766ee7fa27599600fbe88785ab43e86e72f 100644 (file)
@@ -5493,9 +5493,8 @@ int PrimaryLogPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
   ObjectState& obs = ctx->new_obs;
   object_info_t& oi = obs.oi;
   const hobject_t& soid = oi.soid;
-  bool skip_data_digest = osd->store->has_builtin_csum() &&
-    cct->_conf->osd_skip_data_digest;
-  const uint64_t osd_max_object_size = cct->_conf->osd_max_object_size;
+  const bool skip_data_digest = osd->store->has_builtin_csum() &&
+    osd->osd_skip_data_digest;
 
   PGTransaction* t = ctx->op_t.get();
 
@@ -5554,9 +5553,9 @@ int PrimaryLogPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
     // munge ZERO -> TRUNCATE?  (don't munge to DELETE or we risk hosing attributes)
     if (op.op == CEPH_OSD_OP_ZERO &&
         obs.exists &&
-        op.extent.offset < osd_max_object_size &&
+        op.extent.offset < osd->osd_max_object_size &&
         op.extent.length >= 1 &&
-        op.extent.length <= osd_max_object_size &&
+        op.extent.length <= osd->osd_max_object_size &&
        op.extent.offset + op.extent.length >= oi.size) {
       if (op.extent.offset >= oi.size) {
         // no-op
@@ -6256,7 +6255,7 @@ int PrimaryLogPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
          }
        }
        result = check_offset_and_length(op.extent.offset, op.extent.length,
-          osd_max_object_size, get_dpp());
+          osd->osd_max_object_size, get_dpp());
        if (result < 0)
          break;
 
@@ -6302,7 +6301,7 @@ int PrimaryLogPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
          break;
        }
        result = check_offset_and_length(0, op.extent.length,
-          osd_max_object_size, get_dpp());
+          osd->osd_max_object_size, get_dpp());
        if (result < 0)
          break;
 
@@ -6348,7 +6347,7 @@ int PrimaryLogPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
       ++ctx->num_write;
       { // zero
        result = check_offset_and_length(op.extent.offset, op.extent.length,
-          osd_max_object_size, get_dpp());
+          osd->osd_max_object_size, get_dpp());
        if (result < 0)
          break;
  
@@ -6413,7 +6412,7 @@ int PrimaryLogPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
        }
 
         result = check_offset_and_length(op.extent.offset, op.extent.length,
-          osd_max_object_size, get_dpp());
+          osd->osd_max_object_size, get_dpp());
         if (result < 0)
          break;