From b0357abcae5cedc707435a1201cfd7828f51f286 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Sun, 2 Mar 2014 13:39:07 -0800 Subject: [PATCH] PG.h:PGLogEntryHandler: remove silly cant_rollback logic Also, we now call rollback in a reverse order, so there is no need to reverse the entries again. Signed-off-by: Samuel Just --- src/osd/PG.h | 34 +++++++++------------------------- 1 file changed, 9 insertions(+), 25 deletions(-) diff --git a/src/osd/PG.h b/src/osd/PG.h index 38a35f6935c24..5eb2d23f72f9b 100644 --- a/src/osd/PG.h +++ b/src/osd/PG.h @@ -776,8 +776,7 @@ public: }; struct PGLogEntryHandler : public PGLog::LogEntryHandler { - map > to_rollback; - set cannot_rollback; + list to_rollback; set to_remove; list to_trim; @@ -786,35 +785,20 @@ public: to_remove.insert(hoid); } void rollback(const pg_log_entry_t &entry) { - if (cannot_rollback.count(entry.soid)) { - /* we already failed to rollback a previous item - * and made the appropriate adjustments to the - * missing set and/or store */ - return; - } - to_rollback[entry.soid].push_back(entry); - } - void cant_rollback(const pg_log_entry_t &entry) { - to_rollback.erase(entry.soid); - cannot_rollback.insert(entry.soid); + to_rollback.push_back(entry); } void trim(const pg_log_entry_t &entry) { to_trim.push_back(entry); } void apply(PG *pg, ObjectStore::Transaction *t) { - for (map >::iterator i = - to_rollback.begin(); - i != to_rollback.end(); - ++i) { - for (list::reverse_iterator j = i->second.rbegin(); - j != i->second.rend(); - ++j) { - assert(j->mod_desc.can_rollback()); - pg->get_pgbackend()->rollback(j->soid, j->mod_desc, t); - SnapRollBacker rollbacker(j->soid, pg, t); - j->mod_desc.visit(&rollbacker); - } + for (list::iterator j = to_rollback.begin(); + j != to_rollback.end(); + ++j) { + assert(j->mod_desc.can_rollback()); + pg->get_pgbackend()->rollback(j->soid, j->mod_desc, t); + SnapRollBacker rollbacker(j->soid, pg, t); + j->mod_desc.visit(&rollbacker); } for (set::iterator i = to_remove.begin(); i != to_remove.end(); -- 2.39.5