Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ab9c7e6d authored by David Anderson's avatar David Anderson
Browse files

Exclude holes from the block map.

e2fsdroid can export holes as a "0" block, in order to make sure logical
and physical block assignments are maintained properly. Exclude these
hole blocks from range sets in LoadFileBlockMap.

Bug: 139201772
Test: m dist on non-A/B
Change-Id: Ic04e869572229678fdeaaa6fbf6f464d6c672051
parent 733ad209
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -251,6 +251,12 @@ class SparseImage(object):
      for line in f:
        fn, ranges_text = line.rstrip().split(None, 1)
        ranges = rangelib.RangeSet.parse(ranges_text)

        # Note: e2fsdroid records holes in the extent tree as "0" blocks.
        # This causes confusion because clobbered_blocks always includes
        # the superblock (physical block #0). Since the 0 blocks here do
        # not represent actual physical blocks, remove them from the set.
        ranges = ranges.subtract(rangelib.RangeSet("0"))
        ranges.extra['text_str'] = ranges_text

        if allow_shared_blocks: