summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Just <sam.just@inktank.com>2013-06-10 13:54:18 -0700
committerSamuel Just <sam.just@inktank.com>2013-06-17 14:50:52 -0700
commita9a41bc0db2ad8f364e68107b237f03172e45a6e (patch)
treeefd2c21fc998a9fa66864070c0bbf662803f5580
parent7bc43055a6e2b5a3b47753c6bd3313e71d6df98e (diff)
downloadceph-a9a41bc0db2ad8f364e68107b237f03172e45a6e.tar.gz
PGLog: pass only divergent_priors, not ondisklog
Signed-off-by: Samuel Just <sam.just@inktank.com>
-rw-r--r--src/osd/PGLog.cc10
-rw-r--r--src/osd/PGLog.h9
2 files changed, 12 insertions, 7 deletions
diff --git a/src/osd/PGLog.cc b/src/osd/PGLog.cc
index e698de3c445..38896dbc118 100644
--- a/src/osd/PGLog.cc
+++ b/src/osd/PGLog.cc
@@ -550,7 +550,8 @@ void PGLog::write_log(ObjectStore::Transaction& t, pg_log_t &log,
}
bool PGLog::read_log(ObjectStore *store, coll_t coll, hobject_t log_oid,
- const pg_info_t &info, OndiskLog &ondisklog, IndexedLog &log,
+ const pg_info_t &info, map<eversion_t, hobject_t> &divergent_priors,
+ IndexedLog &log,
pg_missing_t &missing, ostringstream &oss)
{
dout(10) << "read_log" << dendl;
@@ -561,7 +562,7 @@ bool PGLog::read_log(ObjectStore *store, coll_t coll, hobject_t log_oid,
int r = store->stat(coll_t::META_COLL, log_oid, &st);
assert(r == 0);
if (st.st_size > 0) {
- read_log_old(store, coll, log_oid, info, ondisklog, log, missing, oss);
+ read_log_old(store, coll, log_oid, info, divergent_priors, log, missing, oss);
rewrite_log = true;
} else {
log.tail = info.log_tail;
@@ -651,7 +652,8 @@ bool PGLog::read_log(ObjectStore *store, coll_t coll, hobject_t log_oid,
}
void PGLog::read_log_old(ObjectStore *store, coll_t coll, hobject_t log_oid,
- const pg_info_t &info, OndiskLog &ondisklog, IndexedLog &log,
+ const pg_info_t &info, map<eversion_t, hobject_t> &divergent_priors,
+ IndexedLog &log,
pg_missing_t &missing, ostringstream &oss)
{
// load bounds, based on old OndiskLog encoding.
@@ -673,7 +675,7 @@ void PGLog::read_log_old(ObjectStore *store, coll_t coll, hobject_t log_oid,
else
ondisklog_zero_to = 0;
if (struct_v >= 5)
- ::decode(ondisklog.divergent_priors, bl);
+ ::decode(divergent_priors, bl);
DECODE_FINISH(bl);
}
uint64_t ondisklog_length = ondisklog_head - ondisklog_tail;
diff --git a/src/osd/PGLog.h b/src/osd/PGLog.h
index f59c2856126..23198127276 100644
--- a/src/osd/PGLog.h
+++ b/src/osd/PGLog.h
@@ -379,17 +379,20 @@ 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, log, missing, oss);
+ return read_log(store, coll, log_oid, info, ondisklog.divergent_priors,
+ log, missing, oss);
}
/// return true if the log should be rewritten
static bool read_log(ObjectStore *store, coll_t coll, hobject_t log_oid,
- const pg_info_t &info, OndiskLog &ondisklog, IndexedLog &log,
+ const pg_info_t &info, map<eversion_t, hobject_t> &divergent_priors,
+ IndexedLog &log,
pg_missing_t &missing, ostringstream &oss);
protected:
static void read_log_old(ObjectStore *store, coll_t coll, hobject_t log_oid,
- const pg_info_t &info, OndiskLog &ondisklog, IndexedLog &log,
+ const pg_info_t &info, map<eversion_t, hobject_t> &divergent_priors,
+ IndexedLog &log,
pg_missing_t &missing, ostringstream &oss);
};