Lines Matching refs:metadata

177     std::unique_ptr<LpMetadata> metadata = ReadMetadata(opener, super_partition, slot_number);  in New()  local
178 if (!metadata) { in New()
181 return New(*metadata.get(), &opener); in New()
199 std::unique_ptr<MetadataBuilder> MetadataBuilder::New(const LpMetadata& metadata, in New() argument
202 if (!builder->Init(metadata)) { in New()
222 auto metadata = ReadMetadata(opener, source_partition, source_slot_number); in NewForUpdate() local
223 if (!metadata) { in NewForUpdate()
231 auto super_device = GetMetadataSuperBlockDevice(*metadata.get()); in NewForUpdate()
234 if (!UpdateMetadataForOtherSuper(metadata.get(), source_slot_number, target_slot_number)) { in NewForUpdate()
243 SetMetadataHeaderV0(metadata.get()); in NewForUpdate()
247 if (!UpdateMetadataForInPlaceSnapshot(metadata.get(), source_slot_number, in NewForUpdate()
254 return New(*metadata.get(), &opener); in NewForUpdate()
261 bool MetadataBuilder::UpdateMetadataForOtherSuper(LpMetadata* metadata, uint32_t source_slot_number, in UpdateMetadataForOtherSuper() argument
265 metadata->partitions.clear(); in UpdateMetadataForOtherSuper()
266 metadata->extents.clear(); in UpdateMetadataForOtherSuper()
267 metadata->groups.clear(); in UpdateMetadataForOtherSuper()
273 auto source_block_devices = std::move(metadata->block_devices); in UpdateMetadataForOtherSuper()
294 metadata->block_devices.emplace_back(new_device); in UpdateMetadataForOtherSuper()
316 bool MetadataBuilder::Init(const LpMetadata& metadata) { in Init() argument
317 geometry_ = metadata.geometry; in Init()
318 block_devices_ = metadata.block_devices; in Init()
321 if (metadata.header.minor_version >= LP_METADATA_VERSION_FOR_EXPANDED_HEADER) { in Init()
323 header_.flags = metadata.header.flags; in Init()
326 for (const auto& group : metadata.groups) { in Init()
333 for (const auto& partition : metadata.partitions) { in Init()
334 std::string group_name = GetPartitionGroupName(metadata.groups[partition.group_index]); in Init()
340 ImportExtents(builder, metadata, partition); in Init()
345 void MetadataBuilder::ImportExtents(Partition* dest, const LpMetadata& metadata, in ImportExtents() argument
348 const LpMetadataExtent& extent = metadata.extents[source.first_extent_index + i]; in ImportExtents()
880 std::unique_ptr<LpMetadata> metadata = std::make_unique<LpMetadata>(); in Export() local
881 metadata->header = header_; in Export()
882 metadata->geometry = geometry_; in Export()
886 metadata->block_devices.emplace_back(block_device); in Export()
888 metadata->block_devices.back().flags |= LP_BLOCK_DEVICE_SLOT_SUFFIXED; in Export()
906 group_indices[group->name()] = metadata->groups.size(); in Export()
907 metadata->groups.push_back(out); in Export()
927 metadata->header.minor_version = std::max(metadata->header.minor_version, kMinVersion); in Export()
931 part.first_extent_index = static_cast<uint32_t>(metadata->extents.size()); in Export()
947 if (!extent->AddTo(metadata.get())) { in Export()
951 metadata->partitions.push_back(part); in Export()
954 metadata->header.partitions.num_entries = static_cast<uint32_t>(metadata->partitions.size()); in Export()
955 metadata->header.extents.num_entries = static_cast<uint32_t>(metadata->extents.size()); in Export()
956 metadata->header.groups.num_entries = static_cast<uint32_t>(metadata->groups.size()); in Export()
957 metadata->header.block_devices.num_entries = in Export()
958 static_cast<uint32_t>(metadata->block_devices.size()); in Export()
959 return metadata; in Export()
1139 bool MetadataBuilder::ImportPartitions(const LpMetadata& metadata, in ImportPartitions() argument
1145 if (metadata.block_devices.size() != block_devices_.size()) { in ImportPartitions()
1149 for (size_t i = 0; i < metadata.block_devices.size(); i++) { in ImportPartitions()
1150 const LpMetadataBlockDevice& old_device = metadata.block_devices[i]; in ImportPartitions()
1162 for (const auto& partition : metadata.partitions) { in ImportPartitions()
1167 if (!ImportPartition(metadata, partition)) { in ImportPartitions()
1174 bool MetadataBuilder::ImportPartition(const LpMetadata& metadata, in ImportPartition() argument
1179 std::string group_name = GetPartitionGroupName(metadata.groups[source.group_index]); in ImportPartition()
1191 ImportExtents(partition, metadata, source); in ImportPartition()