diff options
author | Samuel Just <sam.just@inktank.com> | 2013-08-27 07:27:26 -0700 |
---|---|---|
committer | Samuel Just <sam.just@inktank.com> | 2013-08-27 10:27:55 -0700 |
commit | fec6e90dde6ad9436e0b852c7f1e0a42b9d7ba60 (patch) | |
tree | b7b066aae0448752621bbddec0b799ded847b060 | |
parent | 8b30264e2c71788e6cdb89c98ef44caec9d82308 (diff) | |
download | ceph-fec6e90dde6ad9436e0b852c7f1e0a42b9d7ba60.tar.gz |
PGLog: don't maintain log_keys_debug if the config is disabled
Signed-off-by: Samuel Just <sam.just@inktank.com>
-rw-r--r-- | src/osd/PGLog.cc | 13 | ||||
-rw-r--r-- | src/osd/PGLog.h | 12 |
2 files changed, 14 insertions, 11 deletions
diff --git a/src/osd/PGLog.cc b/src/osd/PGLog.cc index dac1f33fd91..0e18710ad18 100644 --- a/src/osd/PGLog.cc +++ b/src/osd/PGLog.cc @@ -542,12 +542,13 @@ void PGLog::write_log( << ", dirty_from: " << dirty_from << ", dirty_divergent_priors: " << dirty_divergent_priors << dendl; - _write_log(t, log, log_oid, divergent_priors, - dirty_to, - dirty_from, - dirty_divergent_priors, - !touched_log, - &log_keys_debug); + _write_log( + t, log, log_oid, divergent_priors, + dirty_to, + dirty_from, + dirty_divergent_priors, + !touched_log, + (pg_log_debug ? &log_keys_debug : 0)); undirty(); } else { dout(10) << "log is not dirty" << dendl; diff --git a/src/osd/PGLog.h b/src/osd/PGLog.h index 712c1e1c917..b524c60c00a 100644 --- a/src/osd/PGLog.h +++ b/src/osd/PGLog.h @@ -150,6 +150,7 @@ struct PGLog { protected: //////////////////// data members //////////////////// + bool pg_log_debug; map<eversion_t, hobject_t> divergent_priors; pg_missing_t missing; @@ -205,10 +206,8 @@ protected: log_keys_debug->erase(i++)); } void check() { - if (cct && - !(cct->_conf->osd_debug_pg_log_writeout)) { + if (!pg_log_debug) return; - } assert(log.log.size() == log_keys_debug.size()); for (list<pg_log_entry_t>::iterator i = log.log.begin(); i != log.log.end(); @@ -226,6 +225,7 @@ protected: } public: PGLog(CephContext *cct = 0) : + pg_log_debug(!(cct && !(cct->_conf->osd_debug_pg_log_writeout))), touched_log(false), dirty_from(eversion_t::max()), dirty_divergent_priors(false), cct(cct) {} @@ -381,8 +381,10 @@ public: bool read_log(ObjectStore *store, coll_t coll, hobject_t log_oid, const pg_info_t &info, ostringstream &oss) { - return read_log(store, coll, log_oid, info, divergent_priors, - log, missing, oss, &log_keys_debug); + return read_log( + store, coll, log_oid, info, divergent_priors, + log, missing, oss, + (pg_log_debug ? &log_keys_debug : 0)); } /// return true if the log should be rewritten |