diff --git a/boot_control_android.cc b/boot_control_android.cc
index ad819ad..622646e 100644
--- a/boot_control_android.cc
+++ b/boot_control_android.cc
@@ -40,8 +40,8 @@
 using android::hardware::boot::V1_0::CommandResult;
 using android::hardware::boot::V1_0::IBootControl;
 using Slot = chromeos_update_engine::BootControlInterface::Slot;
-using PartitionSizes =
-    chromeos_update_engine::BootControlInterface::PartitionSizes;
+using PartitionMetadata =
+    chromeos_update_engine::BootControlInterface::PartitionMetadata;
 
 namespace {
 
@@ -260,7 +260,7 @@
                       const string& super_device,
                       Slot target_slot,
                       const string& target_suffix,
-                      const PartitionSizes& logical_sizes,
+                      const PartitionMetadata& logical_sizes,
                       MetadataBuilder* builder) {
   // Delete all extents to ensure that each partition has enough space to
   // grow.
@@ -317,12 +317,12 @@
 
 bool FilterPartitionSizes(DynamicPartitionControlInterface* dynamic_control,
                           const base::FilePath& device_dir,
-                          const PartitionSizes& partition_sizes,
+                          const PartitionMetadata& partition_metadata,
                           MetadataBuilder* source_metadata,
                           const string& source_suffix,
                           const string& target_suffix,
-                          PartitionSizes* logical_sizes) {
-  for (const auto& pair : partition_sizes) {
+                          PartitionMetadata* logical_sizes) {
+  for (const auto& pair : partition_metadata) {
     if (!IsDynamicPartition(dynamic_control,
                             device_dir,
                             source_metadata,
@@ -347,7 +347,7 @@
                           const string& super_device,
                           Slot target_slot,
                           const string& suffix,
-                          const PartitionSizes& logical_sizes) {
+                          const PartitionMetadata& logical_sizes) {
   auto target_metadata =
       dynamic_control->LoadMetadataBuilder(super_device, target_slot);
   if (target_metadata == nullptr) {
@@ -385,7 +385,7 @@
 }  // namespace
 
 bool BootControlAndroid::InitPartitionMetadata(
-    Slot target_slot, const PartitionSizes& partition_sizes) {
+    Slot target_slot, const PartitionMetadata& partition_metadata) {
   if (!dynamic_control_->IsDynamicPartitionsEnabled()) {
     return true;
   }
@@ -423,10 +423,10 @@
   // Read metadata from current slot to determine which partitions are logical
   // and may be resized. Do not read from target slot because metadata at
   // target slot may be corrupted.
-  PartitionSizes logical_sizes;
+  PartitionMetadata logical_sizes;
   if (!FilterPartitionSizes(dynamic_control_.get(),
                             device_dir,
-                            partition_sizes,
+                            partition_metadata,
                             builder.get() /* source metadata */,
                             current_suffix,
                             target_suffix,
diff --git a/boot_control_android.h b/boot_control_android.h
index 24ab4dc..d831273 100644
--- a/boot_control_android.h
+++ b/boot_control_android.h
@@ -51,8 +51,8 @@
   bool MarkSlotUnbootable(BootControlInterface::Slot slot) override;
   bool SetActiveBootSlot(BootControlInterface::Slot slot) override;
   bool MarkBootSuccessfulAsync(base::Callback<void(bool)> callback) override;
-  bool InitPartitionMetadata(Slot slot,
-                             const PartitionSizes& partition_sizes) override;
+  bool InitPartitionMetadata(
+      Slot slot, const PartitionMetadata& partition_metadata) override;
   void Cleanup() override;
 
  private:
diff --git a/boot_control_chromeos.cc b/boot_control_chromeos.cc
index 68ac5bd..a82efc7 100644
--- a/boot_control_chromeos.cc
+++ b/boot_control_chromeos.cc
@@ -303,7 +303,7 @@
 }
 
 bool BootControlChromeOS::InitPartitionMetadata(
-    Slot slot, const PartitionSizes& partition_sizes) {
+    Slot slot, const PartitionMetadata& partition_metadata) {
   return true;
 }
 
diff --git a/boot_control_chromeos.h b/boot_control_chromeos.h
index d7bab05..c474d6f 100644
--- a/boot_control_chromeos.h
+++ b/boot_control_chromeos.h
@@ -50,8 +50,8 @@
   bool MarkSlotUnbootable(BootControlInterface::Slot slot) override;
   bool SetActiveBootSlot(BootControlInterface::Slot slot) override;
   bool MarkBootSuccessfulAsync(base::Callback<void(bool)> callback) override;
-  bool InitPartitionMetadata(Slot slot,
-                             const PartitionSizes& partition_sizes) override;
+  bool InitPartitionMetadata(
+      Slot slot, const PartitionMetadata& partition_metadata) override;
   void Cleanup() override;
 
  private:
diff --git a/common/boot_control_interface.h b/common/boot_control_interface.h
index 776333c..1b76939 100644
--- a/common/boot_control_interface.h
+++ b/common/boot_control_interface.h
@@ -33,7 +33,7 @@
 class BootControlInterface {
  public:
   using Slot = unsigned int;
-  using PartitionSizes = std::map<std::string, uint64_t>;
+  using PartitionMetadata = std::map<std::string, uint64_t>;
 
   static const Slot kInvalidSlot = UINT_MAX;
 
@@ -81,11 +81,11 @@
 
   // Initialize metadata of underlying partitions for a given |slot|.
   // Ensure that partitions at the specified |slot| has a given size, as
-  // specified by |partition_sizes|. |partition_sizes| has the format:
+  // specified by |partition_metadata|. |partition_metadata| has the format:
   // {"vendor": 524288000, "system": 2097152000, ...}; values must be
   // aligned to the logical block size of the super partition.
-  virtual bool InitPartitionMetadata(Slot slot,
-                                     const PartitionSizes& partition_sizes) = 0;
+  virtual bool InitPartitionMetadata(
+      Slot slot, const PartitionMetadata& partition_metadata) = 0;
 
   // Do necessary clean-up operations after the whole update.
   virtual void Cleanup() = 0;
diff --git a/common/boot_control_stub.cc b/common/boot_control_stub.cc
index 2e326e5..ca880d4 100644
--- a/common/boot_control_stub.cc
+++ b/common/boot_control_stub.cc
@@ -60,7 +60,7 @@
 }
 
 bool BootControlStub::InitPartitionMetadata(
-    Slot slot, const PartitionSizes& partition_sizes) {
+    Slot slot, const PartitionMetadata& partition_metadata) {
   LOG(ERROR) << __FUNCTION__ << " should never be called.";
   return false;
 }
diff --git a/common/boot_control_stub.h b/common/boot_control_stub.h
index 65248af..0950997 100644
--- a/common/boot_control_stub.h
+++ b/common/boot_control_stub.h
@@ -45,8 +45,8 @@
   bool MarkSlotUnbootable(BootControlInterface::Slot slot) override;
   bool SetActiveBootSlot(BootControlInterface::Slot slot) override;
   bool MarkBootSuccessfulAsync(base::Callback<void(bool)> callback) override;
-  bool InitPartitionMetadata(Slot slot,
-                             const PartitionSizes& partition_sizes) override;
+  bool InitPartitionMetadata(
+      Slot slot, const PartitionMetadata& partition_metadata) override;
   void Cleanup() override;
 
  private:
diff --git a/common/fake_boot_control.h b/common/fake_boot_control.h
index e71c83a..513c149 100644
--- a/common/fake_boot_control.h
+++ b/common/fake_boot_control.h
@@ -74,8 +74,8 @@
     return true;
   }
 
-  bool InitPartitionMetadata(Slot slot,
-                             const PartitionSizes& partition_sizes) override {
+  bool InitPartitionMetadata(
+      Slot slot, const PartitionMetadata& partition_metadata) override {
     return true;
   }
 
diff --git a/payload_consumer/delta_performer.cc b/payload_consumer/delta_performer.cc
index f7323f9..ca898d5 100644
--- a/payload_consumer/delta_performer.cc
+++ b/payload_consumer/delta_performer.cc
@@ -919,12 +919,12 @@
   }
 
   if (install_plan_->target_slot != BootControlInterface::kInvalidSlot) {
-    BootControlInterface::PartitionSizes partition_sizes;
+    BootControlInterface::PartitionMetadata partition_metadata;
     for (const InstallPlan::Partition& partition : install_plan_->partitions) {
-      partition_sizes.emplace(partition.name, partition.target_size);
+      partition_metadata.emplace(partition.name, partition.target_size);
     }
     if (!boot_control_->InitPartitionMetadata(install_plan_->target_slot,
-                                              partition_sizes)) {
+                                              partition_metadata)) {
       LOG(ERROR) << "Unable to initialize partition metadata for slot "
                  << BootControlInterface::SlotName(install_plan_->target_slot);
       *error = ErrorCode::kInstallDeviceOpenError;
