first_stage_mount: Remove "overlay" hack from InitRequiredDevices()

GetDmVerityDevices() should filter out overlayfs fstab entries in the
first place, so InitRequiredDevices() don't need to filter out overlayfs
pseudo device names.

Bug: 188862155
Test: Boot to normal with overlayfs mount entries in first stage fstab
Change-Id: I0ac8b7ac0f21daa0c191580d9349adf217854864
Merged-In: I0ac8b7ac0f21daa0c191580d9349adf217854864
(cherry picked from commit 87290f8e9b)
This commit is contained in:
Yi-Yo Chiang 2021-05-19 16:02:46 +08:00 committed by Yi-yo Chiang
parent 1d56fe6538
commit aa061738bc

View file

@ -331,12 +331,6 @@ bool FirstStageMount::InitRequiredDevices(std::set<std::string> devices) {
if (devices.empty()) {
return true;
}
// excluding overlays
for (auto iter = devices.begin(); iter != devices.end(); ) {
if (*iter=="overlay") iter = devices.erase(iter);
else iter++;
}
return block_dev_init_.InitDevices(std::move(devices));
}
@ -695,6 +689,10 @@ bool FirstStageMountVBootV1::GetDmVerityDevices(std::set<std::string>* devices)
// Includes the partition names of fstab records.
// Notes that fstab_rec->blk_device has A/B suffix updated by fs_mgr when A/B is used.
for (const auto& fstab_entry : fstab_) {
// Skip pseudo filesystems.
if (fstab_entry.fs_type == "overlay") {
continue;
}
if (!fstab_entry.fs_mgr_flags.logical) {
devices->emplace(basename(fstab_entry.blk_device.c_str()));
}
@ -757,6 +755,10 @@ bool FirstStageMountVBootV2::GetDmVerityDevices(std::set<std::string>* devices)
if (fstab_entry.fs_mgr_flags.avb) {
need_dm_verity_ = true;
}
// Skip pseudo filesystems.
if (fstab_entry.fs_type == "overlay") {
continue;
}
if (fstab_entry.fs_mgr_flags.logical) {
// Don't try to find logical partitions via uevent regeneration.
logical_partitions.emplace(basename(fstab_entry.blk_device.c_str()));