diff options
author | Samuel Just <sam.just@inktank.com> | 2013-06-10 13:57:32 -0700 |
---|---|---|
committer | Samuel Just <sam.just@inktank.com> | 2013-06-17 14:50:52 -0700 |
commit | ca1637ff87f805024ea7c89399ee670f72354571 (patch) | |
tree | 7d2ff133161ec3dc80c01ebb64ceb92535827c94 | |
parent | a9a41bc0db2ad8f364e68107b237f03172e45a6e (diff) | |
download | ceph-ca1637ff87f805024ea7c89399ee670f72354571.tar.gz |
PGLog: remove other ondisklog references
Signed-off-by: Samuel Just <sam.just@inktank.com>
-rw-r--r-- | src/osd/PGLog.cc | 16 | ||||
-rw-r--r-- | src/osd/PGLog.h | 17 | ||||
-rw-r--r-- | src/tools/ceph-filestore-dump.cc | 4 |
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; } |