]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: skip out of order op checks on tiered pools 1825/head
authorSage Weil <sage@inktank.com>
Mon, 19 May 2014 17:32:12 +0000 (10:32 -0700)
committerSage Weil <sage@inktank.com>
Mon, 19 May 2014 17:32:12 +0000 (10:32 -0700)
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 <sage@inktank.com>
src/osd/ReplicatedPG.cc
src/osd/osd_types.h

index 496750438ebdcfaad74bd60f4e04e435c04dfc9f..0a4ee7a7ac063cec9e18354ddcd64e28dbdc8e41 100644 (file)
@@ -1834,7 +1834,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<client_t,ceph_tid_t>& cm = debug_op_order[obc->obs.oi.soid];
     ceph_tid_t t = m->get_tid();
     client_t n = m->get_source().num();
index c21b5018f5146171161f6e7b7d573f96e3e899f9..54fd619f40feb79efacb6d68e05187f638299dfe 100644 (file)
@@ -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; }