summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Just <sam.just@inktank.com>2013-06-10 13:57:32 -0700
committerSamuel Just <sam.just@inktank.com>2013-06-17 14:50:52 -0700
commitca1637ff87f805024ea7c89399ee670f72354571 (patch)
tree7d2ff133161ec3dc80c01ebb64ceb92535827c94
parenta9a41bc0db2ad8f364e68107b237f03172e45a6e (diff)
downloadceph-ca1637ff87f805024ea7c89399ee670f72354571.tar.gz
PGLog: remove other ondisklog references
Signed-off-by: Samuel Just <sam.just@inktank.com>
-rw-r--r--src/osd/PGLog.cc16
-rw-r--r--src/osd/PGLog.h17
-rw-r--r--src/tools/ceph-filestore-dump.cc4
3 files changed, 18 insertions, 19 deletions
diff --git a/src/osd/PGLog.cc b/src/osd/PGLog.cc
index 38896dbc118..5995918dcbc 100644
--- a/src/osd/PGLog.cc
+++ b/src/osd/PGLog.cc
@@ -111,9 +111,7 @@ void PGLog::reset_backfill()
}
void PGLog::clear() {
- ondisklog.zero();
- ondisklog.has_checksums = true;
- ondisklog.divergent_priors.clear();
+ divergent_priors.clear();
missing.clear();
log.zero();
}
@@ -140,7 +138,7 @@ void PGLog::trim(ObjectStore::Transaction& t, eversion_t trim_to, pg_info_t &inf
/* If we are trimming, we must be complete up to trim_to, time
* to throw out any divergent_priors
*/
- ondisklog.divergent_priors.clear();
+ divergent_priors.clear();
// We shouldn't be trimming the log past last_complete
assert(trim_to <= info.last_complete);
@@ -330,7 +328,7 @@ bool PGLog::merge_old_entry(ObjectStore::Transaction& t, const pg_log_entry_t& o
dout(20) << "merge_old_entry had " << oe << " updating missing to "
<< oe.prior_version << dendl;
if (oe.prior_version > eversion_t()) {
- ondisklog.add_divergent_prior(oe.prior_version, oe.soid);
+ add_divergent_prior(oe.prior_version, oe.soid);
dirty_log = true;
missing.revise_need(oe.soid, oe.prior_version);
} else if (missing.is_missing(oe.soid)) {
@@ -571,8 +569,8 @@ bool PGLog::read_log(ObjectStore *store, coll_t coll, hobject_t log_oid,
bufferlist bl = p->value();//Copy bufferlist before creating iterator
bufferlist::iterator bp = bl.begin();
if (p->key() == "divergent_priors") {
- ::decode(ondisklog.divergent_priors, bp);
- dout(20) << "read_log " << ondisklog.divergent_priors.size() << " divergent_priors" << dendl;
+ ::decode(divergent_priors, bp);
+ dout(20) << "read_log " << divergent_priors.size() << " divergent_priors" << dendl;
} else {
pg_log_entry_t e;
e.decode_with_checksum(bp);
@@ -619,8 +617,8 @@ bool PGLog::read_log(ObjectStore *store, coll_t coll, hobject_t log_oid,
}
}
for (map<eversion_t, hobject_t>::reverse_iterator i =
- ondisklog.divergent_priors.rbegin();
- i != ondisklog.divergent_priors.rend();
+ divergent_priors.rbegin();
+ i != divergent_priors.rend();
++i) {
if (i->first <= info.last_complete) break;
if (did.count(i->second)) continue;
diff --git a/src/osd/PGLog.h b/src/osd/PGLog.h
index 23198127276..b2d857dbfe8 100644
--- a/src/osd/PGLog.h
+++ b/src/osd/PGLog.h
@@ -145,7 +145,12 @@ struct PGLog {
ostream& print(ostream& out) const;
};
-
+
+
+ void add_divergent_prior(eversion_t version, hobject_t obj) {
+ divergent_priors.insert(make_pair(version, obj));
+ }
+
/**
* OndiskLog - some info about how we store the log on disk.
*/
@@ -231,7 +236,7 @@ struct PGLog {
protected:
//////////////////// data members ////////////////////
- OndiskLog ondisklog;
+ map<eversion_t, hobject_t> divergent_priors;
pg_missing_t missing;
IndexedLog log;
@@ -268,10 +273,6 @@ public:
missing.rm(p);
}
- //////////////////// get or set ondisklog ////////////////////
-
- const OndiskLog &get_ondisklog() const { return ondisklog; }
-
//////////////////// get or set log ////////////////////
const IndexedLog &get_log() const { return log; }
@@ -371,7 +372,7 @@ public:
bool &dirty_log, bool &dirty_info, bool &dirty_big_info);
void write_log(ObjectStore::Transaction& t, const hobject_t &log_oid) {
- write_log(t, log, log_oid, ondisklog.divergent_priors);
+ write_log(t, log, log_oid, divergent_priors);
}
static void write_log(ObjectStore::Transaction& t, pg_log_t &log,
@@ -379,7 +380,7 @@ 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, ondisklog.divergent_priors,
+ return read_log(store, coll, log_oid, info, divergent_priors,
log, missing, oss);
}
diff --git a/src/tools/ceph-filestore-dump.cc b/src/tools/ceph-filestore-dump.cc
index 4953bb6062e..3badc2160b0 100644
--- a/src/tools/ceph-filestore-dump.cc
+++ b/src/tools/ceph-filestore-dump.cc
@@ -324,10 +324,10 @@ static void invalid_path(string &path)
int get_log(ObjectStore *fs, coll_t coll, pg_t pgid, const pg_info_t &info,
PGLog::IndexedLog &log, pg_missing_t &missing)
{
- PGLog::OndiskLog ondisklog;
+ map<eversion_t, hobject_t> divergent_priors;
try {
ostringstream oss;
- PGLog::read_log(fs, coll, log_oid, info, ondisklog, log, missing, oss);
+ PGLog::read_log(fs, coll, log_oid, info, divergent_priors, log, missing, oss);
if (debug && oss.str().size())
cerr << oss.str() << std::endl;
}