From 248750fea441efd16c1a431617cfbd1f868a6eeb Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Mon, 5 Feb 2018 15:19:47 +0100 Subject: [PATCH] osd: PrimaryLogPG::do_osd_ops() uses md_config_cacher_t. Signed-off-by: Radoslaw Zarzynski --- src/osd/OSD.cc | 2 ++ src/osd/OSD.h | 4 ++++ src/osd/PrimaryLogPG.cc | 17 ++++++++--------- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 78f9a65841253..bd5ebd0d6c8e1 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -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"), diff --git a/src/osd/OSD.h b/src/osd/OSD.h index ee94a50320708..1b4c250aa1157 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -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 osd_max_object_size; + md_config_cacher_t osd_skip_data_digest; + void enqueue_back(OpQueueItem&& qi); void enqueue_front(OpQueueItem&& qi); diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index 85056b44db6a5..fca25766ee7fa 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -5493,9 +5493,8 @@ int PrimaryLogPG::do_osd_ops(OpContext *ctx, vector& 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& 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& 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& 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& 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& 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; -- 2.39.5