diff options
Diffstat (limited to 'scripts')
-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): |