diff options
-rw-r--r-- | src/burn/engine/apply.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/burn/engine/apply.cpp b/src/burn/engine/apply.cpp index 8711344d..283c0ada 100644 --- a/src/burn/engine/apply.cpp +++ b/src/burn/engine/apply.cpp | |||
@@ -725,6 +725,7 @@ extern "C" HRESULT ApplyExecute( | |||
725 | break; | 725 | break; |
726 | } | 726 | } |
727 | 727 | ||
728 | // The action failed, roll back to previous rollback boundary. | ||
728 | if (pCheckpoint) | 729 | if (pCheckpoint) |
729 | { | 730 | { |
730 | // If inside a MSI transaction, roll it back. | 731 | // If inside a MSI transaction, roll it back. |
@@ -734,7 +735,6 @@ extern "C" HRESULT ApplyExecute( | |||
734 | IgnoreRollbackError(hrRollback, "Failed rolling back transaction"); | 735 | IgnoreRollbackError(hrRollback, "Failed rolling back transaction"); |
735 | } | 736 | } |
736 | 737 | ||
737 | // The action failed, roll back to previous rollback boundary. | ||
738 | hrRollback = DoRollbackActions(pEngineState, &context, pCheckpoint->dwId, pRestart); | 738 | hrRollback = DoRollbackActions(pEngineState, &context, pCheckpoint->dwId, pRestart); |
739 | IgnoreRollbackError(hrRollback, "Failed rollback actions"); | 739 | IgnoreRollbackError(hrRollback, "Failed rollback actions"); |
740 | } | 740 | } |
@@ -745,6 +745,9 @@ extern "C" HRESULT ApplyExecute( | |||
745 | break; | 745 | break; |
746 | } | 746 | } |
747 | 747 | ||
748 | // Ignore failure inside of a non-vital rollback boundary. | ||
749 | hr = S_OK; | ||
750 | |||
748 | // Move forward to next rollback boundary. | 751 | // Move forward to next rollback boundary. |
749 | fSeekNextRollbackBoundary = TRUE; | 752 | fSeekNextRollbackBoundary = TRUE; |
750 | } | 753 | } |