Merge "init: IsDmLinearEnabled() replace with check if logical partitions present in fstab"

This commit is contained in:
Treehugger Robot 2018-10-03 20:03:26 +00:00 committed by Gerrit Code Review
commit 8bd7d5238f

View file

@ -68,6 +68,7 @@ class FirstStageMount {
bool CreateLogicalPartitions();
bool MountPartition(fstab_rec* fstab_rec);
bool MountPartitions();
bool IsDmLinearEnabled();
bool GetBackingDmLinearDevices();
virtual ListenerAction UeventCallback(const Uevent& uevent);
@ -134,22 +135,6 @@ static bool IsRecoveryMode() {
return !ForceNormalBoot() && access("/system/bin/recovery", F_OK) == 0;
}
static inline bool IsDmLinearEnabled() {
static bool checked = false;
static bool enabled = false;
if (checked) {
return enabled;
}
import_kernel_cmdline(false,
[](const std::string& key, const std::string& value, bool in_qemu) {
if (key == "androidboot.logical_partitions" && value == "1") {
enabled = true;
}
});
checked = true;
return enabled;
}
// Class Definitions
// -----------------
FirstStageMount::FirstStageMount()
@ -198,6 +183,13 @@ bool FirstStageMount::InitDevices() {
return GetBackingDmLinearDevices() && GetDmVerityDevices() && InitRequiredDevices();
}
bool FirstStageMount::IsDmLinearEnabled() {
for (auto fstab_rec : mount_fstab_recs_) {
if (fs_mgr_is_logical(fstab_rec)) return true;
}
return false;
}
bool FirstStageMount::GetBackingDmLinearDevices() {
// Add any additional devices required for dm-linear mappings.
if (!IsDmLinearEnabled()) {