From: Samuel Just Date: Thu, 11 Dec 2014 19:22:55 +0000 (-0800) Subject: osd/: pass log_entries in write path as const ref X-Git-Tag: v0.93~128^2~14 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=27dcb148cd9682f21401e4c18090580233fd72be;p=ceph.git osd/: pass log_entries in write path as const ref We need to use them after the submit_transaction call, so we can't pass them by non-const ref. Signed-off-by: Samuel Just --- diff --git a/src/osd/ECBackend.cc b/src/osd/ECBackend.cc index 817cda00f02..ee994b66684 100644 --- a/src/osd/ECBackend.cc +++ b/src/osd/ECBackend.cc @@ -1222,7 +1222,7 @@ void ECBackend::submit_transaction( PGTransaction *_t, const eversion_t &trim_to, const eversion_t &trim_rollback_to, - vector &log_entries, + const vector &log_entries, boost::optional &hset_history, Context *on_local_applied_sync, Context *on_all_applied, @@ -1238,7 +1238,7 @@ void ECBackend::submit_transaction( op->version = at_version; op->trim_to = trim_to; op->trim_rollback_to = trim_rollback_to; - op->log_entries.swap(log_entries); + op->log_entries = log_entries; std::swap(op->updated_hit_set_history, hset_history); op->on_local_applied_sync = on_local_applied_sync; op->on_all_applied = on_all_applied; diff --git a/src/osd/ECBackend.h b/src/osd/ECBackend.h index d13d8bb4857..04e9beb6124 100644 --- a/src/osd/ECBackend.h +++ b/src/osd/ECBackend.h @@ -98,7 +98,7 @@ public: PGTransaction *t, const eversion_t &trim_to, const eversion_t &trim_rollback_to, - vector &log_entries, + const vector &log_entries, boost::optional &hset_history, Context *on_local_applied_sync, Context *on_all_applied, diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 2b52b4c23f7..3325b4c6678 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -2843,7 +2843,7 @@ void PG::trim_peers() } } -void PG::add_log_entry(pg_log_entry_t& e, bufferlist& log_bl) +void PG::add_log_entry(const pg_log_entry_t& e, bufferlist& log_bl) { // raise last_complete only if we were previously up to date if (info.last_complete == info.last_update) @@ -2867,7 +2867,7 @@ void PG::add_log_entry(pg_log_entry_t& e, bufferlist& log_bl) void PG::append_log( - vector& logv, + const vector& logv, eversion_t trim_to, eversion_t trim_rollback_to, ObjectStore::Transaction &t, @@ -2878,7 +2878,7 @@ void PG::append_log( dout(10) << "append_log " << pg_log.get_log() << " " << logv << dendl; map keys; - for (vector::iterator p = logv.begin(); + for (vector::const_iterator p = logv.begin(); p != logv.end(); ++p) { add_log_entry(*p, keys[p->get_key_name()]); @@ -3050,10 +3050,10 @@ void PG::log_weirdness() } void PG::update_snap_map( - vector &log_entries, + const vector &log_entries, ObjectStore::Transaction &t) { - for (vector::iterator i = log_entries.begin(); + for (vector::const_iterator i = log_entries.begin(); i != log_entries.end(); ++i) { OSDriver::OSTransaction _t(osdriver.get_transaction(&t)); @@ -3066,7 +3066,8 @@ void PG::update_snap_map( } else { assert(i->snaps.length() > 0); vector snaps; - bufferlist::iterator p = i->snaps.begin(); + bufferlist snapbl = i->snaps; + bufferlist::iterator p = snapbl.begin(); try { ::decode(snaps, p); } catch (...) { diff --git a/src/osd/PG.h b/src/osd/PG.h index 2c3b5d4a496..e269596855b 100644 --- a/src/osd/PG.h +++ b/src/osd/PG.h @@ -2120,9 +2120,9 @@ public: return at_version; } - void add_log_entry(pg_log_entry_t& e, bufferlist& log_bl); + void add_log_entry(const pg_log_entry_t& e, bufferlist& log_bl); void append_log( - vector& logv, + const vector& logv, eversion_t trim_to, eversion_t trim_rollback_to, ObjectStore::Transaction &t, @@ -2139,7 +2139,7 @@ public: static bool _has_removal_flag(ObjectStore *store, spg_t pgid); static epoch_t peek_map_epoch(ObjectStore *store, spg_t pgid, bufferlist *bl); void update_snap_map( - vector &log_entries, + const vector &log_entries, ObjectStore::Transaction& t); void filter_snapc(vector &snaps); diff --git a/src/osd/PGBackend.h b/src/osd/PGBackend.h index 2ff352bc7a1..528a59e127f 100644 --- a/src/osd/PGBackend.h +++ b/src/osd/PGBackend.h @@ -173,7 +173,7 @@ const hobject_t &hoid) = 0; virtual void log_operation( - vector &logv, + const vector &logv, boost::optional &hset_history, const eversion_t &trim_to, const eversion_t &trim_rollback_to, @@ -503,7 +503,7 @@ PGTransaction *t, ///< [in] trans to execute const eversion_t &trim_to, ///< [in] trim log to here const eversion_t &trim_rollback_to, ///< [in] trim rollback info to here - vector &log_entries, ///< [in] log entries for t + const vector &log_entries, ///< [in] log entries for t /// [in] hitset history (if updated with this transaction) boost::optional &hset_history, Context *on_local_applied_sync, ///< [in] called when applied locally diff --git a/src/osd/PGLog.h b/src/osd/PGLog.h index ac2f4b3563c..b6254ea060f 100644 --- a/src/osd/PGLog.h +++ b/src/osd/PGLog.h @@ -175,7 +175,7 @@ struct PGLog { } // actors - void add(pg_log_entry_t& e) { + void add(const pg_log_entry_t& e) { // add to log log.push_back(e); @@ -355,7 +355,7 @@ public: void unindex() { log.unindex(); } - void add(pg_log_entry_t& e) { + void add(const pg_log_entry_t& e) { mark_writeout_from(e.version); log.add(e); } diff --git a/src/osd/ReplicatedBackend.cc b/src/osd/ReplicatedBackend.cc index d15267291f8..5e29c6e4bc6 100644 --- a/src/osd/ReplicatedBackend.cc +++ b/src/osd/ReplicatedBackend.cc @@ -522,7 +522,7 @@ void ReplicatedBackend::submit_transaction( PGTransaction *_t, const eversion_t &trim_to, const eversion_t &trim_rollback_to, - vector &log_entries, + const vector &log_entries, boost::optional &hset_history, Context *on_local_applied_sync, Context *on_all_acked, diff --git a/src/osd/ReplicatedBackend.h b/src/osd/ReplicatedBackend.h index 6784bdffc28..7ce90da1e50 100644 --- a/src/osd/ReplicatedBackend.h +++ b/src/osd/ReplicatedBackend.h @@ -344,7 +344,7 @@ public: PGTransaction *t, const eversion_t &trim_to, const eversion_t &trim_rollback_to, - vector &log_entries, + const vector &log_entries, boost::optional &hset_history, Context *on_local_applied_sync, Context *on_all_applied, @@ -365,7 +365,7 @@ private: eversion_t pg_trim_rollback_to, hobject_t new_temp_oid, hobject_t discard_temp_oid, - vector &log_entries, + const vector &log_entries, boost::optional &hset_history, InProgressOp *op, ObjectStore::Transaction *op_t, @@ -380,7 +380,7 @@ private: eversion_t pg_trim_rollback_to, hobject_t new_temp_oid, hobject_t discard_temp_oid, - vector &log_entries, + const vector &log_entries, boost::optional &hset_history, InProgressOp *op, ObjectStore::Transaction *op_t); diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 5ebf34dc29d..b0a9ffbc066 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -7532,7 +7532,7 @@ Message * ReplicatedBackend::generate_subop( eversion_t pg_trim_rollback_to, hobject_t new_temp_oid, hobject_t discard_temp_oid, - vector &log_entries, + const vector &log_entries, boost::optional &hset_hist, InProgressOp *op, ObjectStore::Transaction *op_t, @@ -7587,7 +7587,7 @@ void ReplicatedBackend::issue_op( eversion_t pg_trim_rollback_to, hobject_t new_temp_oid, hobject_t discard_temp_oid, - vector &log_entries, + const vector &log_entries, boost::optional &hset_hist, InProgressOp *op, ObjectStore::Transaction *op_t) diff --git a/src/osd/ReplicatedPG.h b/src/osd/ReplicatedPG.h index 0b0adf5e53c..a32e80d6bb3 100644 --- a/src/osd/ReplicatedPG.h +++ b/src/osd/ReplicatedPG.h @@ -374,7 +374,7 @@ public: return get_object_context(hoid, true, &attrs); } void log_operation( - vector &logv, + const vector &logv, boost::optional &hset_history, const eversion_t &trim_to, const eversion_t &trim_rollback_to,