| Index: src/platform/update_engine/graph_utils.cc
 | 
| diff --git a/src/platform/update_engine/graph_utils.cc b/src/platform/update_engine/graph_utils.cc
 | 
| index 79d573332b61bc669da4d69dd32b0af69ff91986..dd3cdcf19349e98d0d16c135eb16d94afdb1f021 100644
 | 
| --- a/src/platform/update_engine/graph_utils.cc
 | 
| +++ b/src/platform/update_engine/graph_utils.cc
 | 
| @@ -17,7 +17,8 @@ uint64 EdgeWeight(const Graph& graph, const Edge& edge) {
 | 
|        graph[edge.first].out_edges.find(edge.second)->second.extents;
 | 
|    for (vector<Extent>::const_iterator it = extents.begin();
 | 
|         it != extents.end(); ++it) {
 | 
| -    weight += it->num_blocks();
 | 
| +    if (it->start_block() != kSparseHole)
 | 
| +      weight += it->num_blocks();
 | 
|    }
 | 
|    return weight;
 | 
|  }
 | 
| @@ -25,7 +26,15 @@ uint64 EdgeWeight(const Graph& graph, const Edge& edge) {
 | 
|  void AppendBlockToExtents(vector<Extent>* extents, uint64 block) {
 | 
|    if (!extents->empty()) {
 | 
|      Extent& extent = extents->back();
 | 
| -    if (extent.start_block() + extent.num_blocks() == block) {
 | 
| +    if (block == kSparseHole) {
 | 
| +      if (extent.start_block() == kSparseHole) {
 | 
| +        // Extend sparse hole extent
 | 
| +        extent.set_num_blocks(extent.num_blocks() + 1);
 | 
| +        return;
 | 
| +      } else {
 | 
| +        // Create new extent below outer 'if'
 | 
| +      }
 | 
| +    } else if (extent.start_block() + extent.num_blocks() == block) {
 | 
|        extent.set_num_blocks(extent.num_blocks() + 1);
 | 
|        return;
 | 
|      }
 | 
| 
 |