From eb98f4ab3a27aa8e00e0eb7e504ca7bec7c48a06 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 19 May 2014 10:32:12 -0700 Subject: [PATCH] osd: skip out of order op checks on tiered pools When we send redirected ops, we do not assign a new tid, which means that a given client's ops for a pool may not have strictly ordered tids. Skip this check if the pool is tiered to avoid false positives. Fixes: #8380 Signed-off-by: Sage Weil (cherry picked from commit cf2b172c843da0599164901956b66c306a59e570) --- src/osd/ReplicatedPG.cc | 3 ++- src/osd/osd_types.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 4d9d59e04fafa..b724d030425c8 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -1838,7 +1838,8 @@ void ReplicatedPG::execute_ctx(OpContext *ctx) calc_trim_to(); // verify that we are doing this in order? - if (cct->_conf->osd_debug_op_order && m->get_source().is_client()) { + if (cct->_conf->osd_debug_op_order && m->get_source().is_client() && + !pool.info.is_tier() && !pool.info.has_tiers()) { map& cm = debug_op_order[obc->obs.oi.soid]; ceph_tid_t t = m->get_tid(); client_t n = m->get_source().num(); diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index 6d9ce37f2f485..b70951cf57a93 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -915,6 +915,7 @@ public: cache_mode_t cache_mode; ///< cache pool mode bool is_tier() const { return tier_of >= 0; } + bool has_tiers() const { return !tiers.empty(); } void clear_tier() { tier_of = -1; } bool has_read_tier() const { return read_tier >= 0; } void clear_read_tier() { read_tier = -1; } -- 2.39.5