Skip to content

Commit

Permalink
PGLog: don't maintain log_keys_debug if the config is disabled
Browse files Browse the repository at this point in the history
Fixes: ceph#6040
Backport: Dumpling
Signed-off-by: Samuel Just <[email protected]>
  • Loading branch information
Samuel Just committed Aug 28, 2013
1 parent fe68b15 commit 1c0d75d
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 11 deletions.
13 changes: 7 additions & 6 deletions src/osd/PGLog.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
12 changes: 7 additions & 5 deletions src/osd/PGLog.h
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ struct PGLog {

protected:
//////////////////// data members ////////////////////
bool pg_log_debug;

map<eversion_t, hobject_t> divergent_priors;
pg_missing_t missing;
Expand Down Expand Up @@ -205,10 +206,8 @@ struct PGLog {
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();
Expand All @@ -226,6 +225,7 @@ struct PGLog {
}
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) {}

Expand Down Expand Up @@ -381,8 +381,10 @@ struct PGLog {

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
Expand Down

0 comments on commit 1c0d75d

Please sign in to comment.