]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
PG: just ignore rollbacks on objects we have already failed to rollback
authorSamuel Just <sam.just@inktank.com>
Fri, 7 Feb 2014 01:26:24 +0000 (17:26 -0800)
committerSamuel Just <sam.just@inktank.com>
Mon, 17 Feb 2014 22:25:34 +0000 (14:25 -0800)
The relevant changes to missing and/or the filestore will have
already been made.

Signed-off-by: Samuel Just <sam.just@inktank.com>
src/osd/PG.h

index 43395cb26367038ead17bce1e1f1df0866f2f6ca..2ff9e164d0cc3b4753f30adb3c8a87ecb2734412 100644 (file)
@@ -664,7 +664,12 @@ public:
       to_remove.insert(hoid);
     }
     void rollback(const pg_log_entry_t &entry) {
-      assert(!cannot_rollback.count(entry.soid));
+      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) {