From b0103abdee1fecaa9d906efce8e1e8c3325d9ef5 Mon Sep 17 00:00:00 2001 From: David Zafman Date: Wed, 27 Mar 2013 11:06:07 -0700 Subject: [PATCH] OSD fails to start with error assert(values.size() == 2) Remove redundant setting of dirty_info Fix PG::upgrade() to conform to programming style Set dirty_big_info in PG::write_info for upgrades BUG: #4562 Signed-off-by: David Zafman Reviewed-by: Sam Just --- src/osd/PG.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index 59399b704fd..427ba2b7380 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -1795,7 +1795,6 @@ void PG::_activate_committed(epoch_t e) if (dirty_info) { ObjectStore::Transaction *t = new ObjectStore::Transaction; - dirty_info = true; write_if_dirty(*t); int tr = osd->store->queue_transaction(osr.get(), t); assert(tr == 0); @@ -2352,9 +2351,8 @@ void PG::init(int role, vector& newup, vector& newacting, pg_history_t write_if_dirty(*t); } -void PG::upgrade( - ObjectStore *store, - const interval_set &snapcolls) { +void PG::upgrade(ObjectStore *store, const interval_set &snapcolls) +{ unsigned removed = 0; for (interval_set::const_iterator i = snapcolls.begin(); i != snapcolls.end(); @@ -2504,6 +2502,7 @@ void PG::write_info(ObjectStore::Transaction& t) info_struct_v = cur_struct_v; ::encode(info_struct_v, attrbl); t.collection_setattr(coll, "info", attrbl); + dirty_big_info = true; } // info. store purged_snaps separately.