diff options
Diffstat (limited to 'scripts/lib')
| -rw-r--r-- | scripts/lib/wic/filemap.py | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/scripts/lib/wic/filemap.py b/scripts/lib/wic/filemap.py index f8c6e09d01..4d9da28172 100644 --- a/scripts/lib/wic/filemap.py +++ b/scripts/lib/wic/filemap.py | |||
| @@ -469,6 +469,29 @@ class FilemapFiemap(_FilemapBase): | |||
| 469 | % (first_prev, last_prev)) | 469 | % (first_prev, last_prev)) |
| 470 | yield (first_prev, last_prev) | 470 | yield (first_prev, last_prev) |
| 471 | 471 | ||
| 472 | class FilemapNobmap(_FilemapBase): | ||
| 473 | """ | ||
| 474 | This class is used when both the 'SEEK_DATA/HOLE' and FIEMAP are not | ||
| 475 | supported by the filesystem or kernel. | ||
| 476 | """ | ||
| 477 | |||
| 478 | def __init__(self, image, log=None): | ||
| 479 | """Refer the '_FilemapBase' class for the documentation.""" | ||
| 480 | |||
| 481 | # Call the base class constructor first | ||
| 482 | _FilemapBase.__init__(self, image, log) | ||
| 483 | self._log.debug("FilemapNobmap: initializing") | ||
| 484 | |||
| 485 | def block_is_mapped(self, block): | ||
| 486 | """Refer the '_FilemapBase' class for the documentation.""" | ||
| 487 | return True | ||
| 488 | |||
| 489 | def get_mapped_ranges(self, start, count): | ||
| 490 | """Refer the '_FilemapBase' class for the documentation.""" | ||
| 491 | self._log.debug("FilemapNobmap: get_mapped_ranges(%d, %d(%d))" | ||
| 492 | % (start, count, start + count - 1)) | ||
| 493 | yield (start, start + count -1) | ||
| 494 | |||
| 472 | def filemap(image, log=None): | 495 | def filemap(image, log=None): |
| 473 | """ | 496 | """ |
| 474 | Create and return an instance of a Filemap class - 'FilemapFiemap' or | 497 | Create and return an instance of a Filemap class - 'FilemapFiemap' or |
| @@ -482,7 +505,10 @@ def filemap(image, log=None): | |||
| 482 | try: | 505 | try: |
| 483 | return FilemapFiemap(image, log) | 506 | return FilemapFiemap(image, log) |
| 484 | except ErrorNotSupp: | 507 | except ErrorNotSupp: |
| 485 | return FilemapSeek(image, log) | 508 | try: |
| 509 | return FilemapSeek(image, log) | ||
| 510 | except ErrorNotSupp: | ||
| 511 | return FilemapNobmap(image, log) | ||
| 486 | 512 | ||
| 487 | def sparse_copy(src_fname, dst_fname, skip=0, seek=0, | 513 | def sparse_copy(src_fname, dst_fname, skip=0, seek=0, |
| 488 | length=0, api=None): | 514 | length=0, api=None): |
