diff --git a/delta_performer.cc b/delta_performer.cc
index 87241c0..1006f17 100644
--- a/delta_performer.cc
+++ b/delta_performer.cc
@@ -22,7 +22,6 @@
 
 #include "update_engine/bzip_extent_writer.h"
 #include "update_engine/constants.h"
-#include "update_engine/extent_ranges.h"
 #include "update_engine/extent_writer.h"
 #include "update_engine/hardware_interface.h"
 #if USE_MTD
@@ -241,25 +240,6 @@
   return false;
 }
 
-
-// Returns true if |op| is idempotent -- i.e., if we can interrupt it and repeat
-// it safely. Returns false otherwise.
-bool DeltaPerformer::IsIdempotentOperation(
-    const DeltaArchiveManifest_InstallOperation& op) {
-  if (op.src_extents_size() == 0) {
-    return true;
-  }
-  // When in doubt, it's safe to declare an op non-idempotent. Note that we
-  // could detect other types of idempotent operations here such as a MOVE that
-  // moves blocks onto themselves. However, we rely on the server to not send
-  // such operations at all.
-  ExtentRanges src_ranges;
-  src_ranges.AddRepeatedExtents(op.src_extents());
-  const uint64_t block_count = src_ranges.blocks();
-  src_ranges.SubtractRepeatedExtents(op.dst_extents());
-  return block_count == src_ranges.blocks();
-}
-
 int DeltaPerformer::Open(const char* path, int flags, mode_t mode) {
   int err;
   fd_ = OpenFile(path, &err);
@@ -276,13 +256,13 @@
   return static_cast<bool>(kernel_fd_);
 }
 
-bool DeltaPerformer::OpenSourceRootfs(const std::string& source_path) {
+bool DeltaPerformer::OpenSourceRootfs(const string& source_path) {
   int err;
   source_fd_ = OpenFile(source_path.c_str(), &err);
   return static_cast<bool>(source_fd_);
 }
 
-bool DeltaPerformer::OpenSourceKernel(const std::string& source_kernel_path) {
+bool DeltaPerformer::OpenSourceKernel(const string& source_kernel_path) {
   int err;
   source_kernel_fd_ = OpenFile(source_kernel_path.c_str(), &err);
   return static_cast<bool>(source_kernel_fd_);
@@ -757,14 +737,6 @@
     bytes_read += bytes_read_this_iteration;
   }
 
-  // If this is a non-idempotent operation, request a delayed exit and clear the
-  // update state in case the operation gets interrupted. Do this as late as
-  // possible.
-  if (!IsIdempotentOperation(operation)) {
-    Terminator::set_exit_blocked(true);
-    ResetUpdateProgress(prefs_, true);
-  }
-
   // Write bytes out.
   ssize_t bytes_written = 0;
   for (int i = 0; i < operation.dst_extents_size(); i++) {
@@ -917,14 +889,6 @@
   // file is written out.
   DiscardBuffer(true);
 
-  // If this is a non-idempotent operation, request a delayed exit and clear the
-  // update state in case the operation gets interrupted. Do this as late as
-  // possible.
-  if (!IsIdempotentOperation(operation)) {
-    Terminator::set_exit_blocked(true);
-    ResetUpdateProgress(prefs_, true);
-  }
-
   const string& path = is_kernel_partition ? kernel_path_ : path_;
   vector<string> cmd{kBspatchPath, path, path, temp_filename,
                      input_positions, output_positions};
diff --git a/delta_performer.h b/delta_performer.h
index b36c6ec..ba479af 100644
--- a/delta_performer.h
+++ b/delta_performer.h
@@ -230,9 +230,6 @@
   // Update overall progress metrics, log as necessary.
   void UpdateOverallProgress(bool force_log, const char* message_prefix);
 
-  static bool IsIdempotentOperation(
-      const DeltaArchiveManifest_InstallOperation& op);
-
   // Verifies that the expected source partition hashes (if present) match the
   // hashes for the current partitions. Returns true if there are no expected
   // hashes in the payload (e.g., if it's a new-style full update) or if the
diff --git a/delta_performer_unittest.cc b/delta_performer_unittest.cc
index 3a175c4..bc47b0b 100644
--- a/delta_performer_unittest.cc
+++ b/delta_performer_unittest.cc
@@ -19,7 +19,6 @@
 #include <gtest/gtest.h>
 
 #include "update_engine/constants.h"
-#include "update_engine/extent_ranges.h"
 #include "update_engine/fake_hardware.h"
 #include "update_engine/fake_system_state.h"
 #include "update_engine/mock_prefs.h"
@@ -1250,22 +1249,6 @@
   EXPECT_LT(performer.Close(), 0);
 }
 
-TEST(DeltaPerformerTest, IsIdempotentOperationTest) {
-  DeltaArchiveManifest_InstallOperation op;
-  EXPECT_TRUE(DeltaPerformer::IsIdempotentOperation(op));
-  *(op.add_dst_extents()) = ExtentForRange(0, 5);
-  EXPECT_TRUE(DeltaPerformer::IsIdempotentOperation(op));
-  *(op.add_src_extents()) = ExtentForRange(4, 1);
-  EXPECT_FALSE(DeltaPerformer::IsIdempotentOperation(op));
-  op.clear_src_extents();
-  *(op.add_src_extents()) = ExtentForRange(5, 3);
-  EXPECT_TRUE(DeltaPerformer::IsIdempotentOperation(op));
-  *(op.add_dst_extents()) = ExtentForRange(20, 6);
-  EXPECT_TRUE(DeltaPerformer::IsIdempotentOperation(op));
-  *(op.add_src_extents()) = ExtentForRange(19, 2);
-  EXPECT_FALSE(DeltaPerformer::IsIdempotentOperation(op));
-}
-
 TEST(DeltaPerformerTest, WriteUpdatesPayloadState) {
   MockPrefs prefs;
   InstallPlan install_plan;
diff --git a/payload_generator/delta_diff_generator.cc b/payload_generator/delta_diff_generator.cc
index 34b9737..8676086 100644
--- a/payload_generator/delta_diff_generator.cc
+++ b/payload_generator/delta_diff_generator.cc
@@ -27,11 +27,11 @@
 
 #include "update_engine/bzip.h"
 #include "update_engine/delta_performer.h"
-#include "update_engine/extent_ranges.h"
 #include "update_engine/file_writer.h"
 #include "update_engine/omaha_hash_calculator.h"
 #include "update_engine/payload_constants.h"
 #include "update_engine/payload_generator/ext2_filesystem.h"
+#include "update_engine/payload_generator/extent_ranges.h"
 #include "update_engine/payload_generator/full_update_generator.h"
 #include "update_engine/payload_generator/inplace_generator.h"
 #include "update_engine/payload_generator/payload_signer.h"
@@ -161,7 +161,7 @@
                                 manifest_metadata_size));
   total_size += manifest_metadata_size;
 
-  std::sort(objects.begin(), objects.end());
+  sort(objects.begin(), objects.end());
 
   static const char kFormatString[] = "%6.2f%% %10jd %-10s %s\n";
   for (const DeltaObject& object : objects) {
diff --git a/payload_generator/delta_diff_generator_unittest.cc b/payload_generator/delta_diff_generator_unittest.cc
index c198916..baf308f 100644
--- a/payload_generator/delta_diff_generator_unittest.cc
+++ b/payload_generator/delta_diff_generator_unittest.cc
@@ -27,8 +27,8 @@
 
 #include "update_engine/bzip.h"
 #include "update_engine/delta_performer.h"
-#include "update_engine/extent_ranges.h"
 #include "update_engine/payload_constants.h"
+#include "update_engine/payload_generator/extent_ranges.h"
 #include "update_engine/payload_generator/extent_utils.h"
 #include "update_engine/payload_generator/fake_filesystem.h"
 #include "update_engine/payload_generator/graph_types.h"
@@ -36,7 +36,6 @@
 #include "update_engine/test_utils.h"
 #include "update_engine/utils.h"
 
-using chromeos_update_engine::test_utils::kRandomString;
 using std::set;
 using std::string;
 using std::unique_ptr;
diff --git a/payload_generator/ext2_filesystem.cc b/payload_generator/ext2_filesystem.cc
index d3e0930..0467b80 100644
--- a/payload_generator/ext2_filesystem.cc
+++ b/payload_generator/ext2_filesystem.cc
@@ -14,7 +14,7 @@
 #include <base/logging.h>
 #include <base/strings/stringprintf.h>
 
-#include "update_engine/extent_ranges.h"
+#include "update_engine/payload_generator/extent_ranges.h"
 #include "update_engine/payload_generator/extent_utils.h"
 #include "update_engine/update_metadata.pb.h"
 #include "update_engine/utils.h"
diff --git a/extent_ranges.cc b/payload_generator/extent_ranges.cc
similarity index 98%
rename from extent_ranges.cc
rename to payload_generator/extent_ranges.cc
index b425a86..d86bcfc 100644
--- a/extent_ranges.cc
+++ b/payload_generator/extent_ranges.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "update_engine/extent_ranges.h"
+#include "update_engine/payload_generator/extent_ranges.h"
 
 #include <algorithm>
 #include <set>
diff --git a/extent_ranges.h b/payload_generator/extent_ranges.h
similarity index 93%
rename from extent_ranges.h
rename to payload_generator/extent_ranges.h
index ec3547c..fc15149 100644
--- a/extent_ranges.h
+++ b/payload_generator/extent_ranges.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef UPDATE_ENGINE_EXTENT_RANGES_H_
-#define UPDATE_ENGINE_EXTENT_RANGES_H_
+#ifndef UPDATE_ENGINE_PAYLOAD_GENERATOR_EXTENT_RANGES_H_
+#define UPDATE_ENGINE_PAYLOAD_GENERATOR_EXTENT_RANGES_H_
 
 #include <map>
 #include <set>
@@ -76,4 +76,4 @@
 
 }  // namespace chromeos_update_engine
 
-#endif  // UPDATE_ENGINE_EXTENT_RANGES_H_
+#endif  // UPDATE_ENGINE_PAYLOAD_GENERATOR_EXTENT_RANGES_H_
diff --git a/extent_ranges_unittest.cc b/payload_generator/extent_ranges_unittest.cc
similarity index 98%
rename from extent_ranges_unittest.cc
rename to payload_generator/extent_ranges_unittest.cc
index 7624f3d..b7036a5 100644
--- a/extent_ranges_unittest.cc
+++ b/payload_generator/extent_ranges_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "update_engine/extent_ranges.h"
+#include "update_engine/payload_generator/extent_ranges.h"
 
 #include <vector>
 
diff --git a/payload_generator/extent_utils.cc b/payload_generator/extent_utils.cc
index 6896678..71aae1d 100644
--- a/payload_generator/extent_utils.cc
+++ b/payload_generator/extent_utils.cc
@@ -11,9 +11,9 @@
 #include <base/logging.h>
 #include <base/macros.h>
 
-#include "update_engine/extent_ranges.h"
 #include "update_engine/payload_constants.h"
 #include "update_engine/payload_generator/annotated_operation.h"
+#include "update_engine/payload_generator/extent_ranges.h"
 
 using std::string;
 using std::vector;
diff --git a/payload_generator/extent_utils_unittest.cc b/payload_generator/extent_utils_unittest.cc
index 6e685e0..b9f9ef2 100644
--- a/payload_generator/extent_utils_unittest.cc
+++ b/payload_generator/extent_utils_unittest.cc
@@ -9,8 +9,8 @@
 
 #include <gtest/gtest.h>
 
-#include "update_engine/extent_ranges.h"
 #include "update_engine/payload_constants.h"
+#include "update_engine/payload_generator/extent_ranges.h"
 #include "update_engine/test_utils.h"
 
 using std::vector;
diff --git a/payload_generator/graph_utils_unittest.cc b/payload_generator/graph_utils_unittest.cc
index 3253f71..bd6c979 100644
--- a/payload_generator/graph_utils_unittest.cc
+++ b/payload_generator/graph_utils_unittest.cc
@@ -9,8 +9,8 @@
 
 #include <gtest/gtest.h>
 
-#include "update_engine/extent_ranges.h"
 #include "update_engine/payload_constants.h"
+#include "update_engine/payload_generator/extent_ranges.h"
 #include "update_engine/payload_generator/extent_utils.h"
 
 using std::make_pair;
diff --git a/payload_generator/inplace_generator.cc b/payload_generator/inplace_generator.cc
index fd19d14..64c8226 100644
--- a/payload_generator/inplace_generator.cc
+++ b/payload_generator/inplace_generator.cc
@@ -11,11 +11,11 @@
 #include <utility>
 #include <vector>
 
-#include "update_engine/extent_ranges.h"
 #include "update_engine/payload_constants.h"
 #include "update_engine/payload_generator/cycle_breaker.h"
 #include "update_engine/payload_generator/delta_diff_generator.h"
 #include "update_engine/payload_generator/ext2_filesystem.h"
+#include "update_engine/payload_generator/extent_ranges.h"
 #include "update_engine/payload_generator/graph_types.h"
 #include "update_engine/payload_generator/graph_utils.h"
 #include "update_engine/payload_generator/topological_sort.h"
diff --git a/payload_generator/inplace_generator_unittest.cc b/payload_generator/inplace_generator_unittest.cc
index 5c563c5..b988787 100644
--- a/payload_generator/inplace_generator_unittest.cc
+++ b/payload_generator/inplace_generator_unittest.cc
@@ -14,9 +14,9 @@
 #include <base/strings/string_util.h>
 #include <gtest/gtest.h>
 
-#include "update_engine/extent_ranges.h"
 #include "update_engine/payload_generator/cycle_breaker.h"
 #include "update_engine/payload_generator/delta_diff_generator.h"
+#include "update_engine/payload_generator/extent_ranges.h"
 #include "update_engine/payload_generator/graph_types.h"
 #include "update_engine/payload_generator/graph_utils.h"
 #include "update_engine/test_utils.h"
diff --git a/payload_generator/raw_filesystem.cc b/payload_generator/raw_filesystem.cc
index ee4423e..f24096e 100644
--- a/payload_generator/raw_filesystem.cc
+++ b/payload_generator/raw_filesystem.cc
@@ -4,7 +4,7 @@
 
 #include "update_engine/payload_generator/raw_filesystem.h"
 
-#include "update_engine/extent_ranges.h"
+#include "update_engine/payload_generator/extent_ranges.h"
 #include "update_engine/update_metadata.pb.h"
 #include "update_engine/utils.h"
 
diff --git a/update_engine.gyp b/update_engine.gyp
index 3ab459c..cfea326 100644
--- a/update_engine.gyp
+++ b/update_engine.gyp
@@ -143,7 +143,6 @@
         'dbus_service.cc',
         'delta_performer.cc',
         'download_action.cc',
-        'extent_ranges.cc',
         'extent_writer.cc',
         'file_descriptor.cc',
         'file_writer.cc',
@@ -280,6 +279,7 @@
         'payload_generator/cycle_breaker.cc',
         'payload_generator/delta_diff_generator.cc',
         'payload_generator/ext2_filesystem.cc',
+        'payload_generator/extent_ranges.cc',
         'payload_generator/extent_utils.cc',
         'payload_generator/full_update_generator.cc',
         'payload_generator/graph_types.cc',
@@ -369,7 +369,6 @@
             'connection_manager_unittest.cc',
             'delta_performer_unittest.cc',
             'download_action_unittest.cc',
-            'extent_ranges_unittest.cc',
             'extent_writer_unittest.cc',
             'fake_prefs.cc',
             'fake_system_state.cc',
@@ -386,6 +385,7 @@
             'payload_generator/cycle_breaker_unittest.cc',
             'payload_generator/delta_diff_generator_unittest.cc',
             'payload_generator/ext2_filesystem_unittest.cc',
+            'payload_generator/extent_ranges_unittest.cc',
             'payload_generator/extent_utils_unittest.cc',
             'payload_generator/fake_filesystem.cc',
             'payload_generator/full_update_generator_unittest.cc',
