Class: Lvm2Thin::MetadataSpaceMap
- Inherits:
-
Object
- Object
- Lvm2Thin::MetadataSpaceMap
- Defined in:
- lib/VolumeManager/LVM/thin/space_maps.rb
Instance Attribute Summary collapse
-
#struct ⇒ Object
Returns the value of attribute struct.
Instance Method Summary collapse
- #bitmaps ⇒ Object
- #index_entries ⇒ Object
- #indices ⇒ Object
-
#initialize(superblock, struct) ⇒ MetadataSpaceMap
constructor
A new instance of MetadataSpaceMap.
- #metadata_root_address ⇒ Object
- #root ⇒ Object
Constructor Details
#initialize(superblock, struct) ⇒ MetadataSpaceMap
Returns a new instance of MetadataSpaceMap.
53 54 55 56 |
# File 'lib/VolumeManager/LVM/thin/space_maps.rb', line 53 def initialize(superblock, struct) @superblock = superblock @struct = struct end |
Instance Attribute Details
#struct ⇒ Object
Returns the value of attribute struct.
51 52 53 |
# File 'lib/VolumeManager/LVM/thin/space_maps.rb', line 51 def struct @struct end |
Instance Method Details
#bitmaps ⇒ Object
44 45 46 47 48 49 |
# File 'lib/VolumeManager/LVM/thin/space_maps.rb', line 44 def bitmaps @bitmaps ||= index_entries.collect do |index_entry| @superblock.seek @superblock.md_block_address(index_entry['blocknr']) @superblock.read_struct BITMAP_HEADER end end |
#index_entries ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/VolumeManager/LVM/thin/space_maps.rb', line 35 def index_entries @index_entries ||= 0.upto(indices-1).collect do |i| address = + METADATA_INDEX.size + i * INDEX_ENTRY.size @superblock.seek address @superblock.read_struct INDEX_ENTRY end end |
#indices ⇒ Object
31 32 33 |
# File 'lib/VolumeManager/LVM/thin/space_maps.rb', line 31 def indices @metadata_indices ||= (struct['nr_blocks'].to_f / @superblock.entries_per_block).ceil end |
#metadata_root_address ⇒ Object
20 21 22 |
# File 'lib/VolumeManager/LVM/thin/space_maps.rb', line 20 def @metadata_root_address ||= @superblock.md_block_address(struct['bitmap_root']) end |
#root ⇒ Object
24 25 26 27 28 29 |
# File 'lib/VolumeManager/LVM/thin/space_maps.rb', line 24 def root @metadata_root ||= begin @superblock.seek @superblock.read_struct METADATA_INDEX end end |