Merge "Revert "first_stage_mount: Create snapshot devices before launching first_stage_console"" am: f2d359cbaa am: 72cca38225 am: 6b8a836733

Original change: https://android-review.googlesource.com/c/platform/system/core/+/1558926

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I946713041b7eb36e9c79fda1405a8fb95557af49
This commit is contained in:
Treehugger Robot 2021-01-26 19:23:00 +00:00 committed by Automerger Merge Worker
commit e2b0d1a809
3 changed files with 10 additions and 35 deletions

View file

@ -286,11 +286,7 @@ int FirstStageMain(int argc, char** argv) {
}
}
if (want_console == FirstStageConsoleParam::CONSOLE_ON_FAILURE) {
if (!DoCreateDevices()) {
LOG(ERROR) << "Failed to create device nodes early";
}
StartConsole(cmdline);
}
@ -331,7 +327,7 @@ int FirstStageMain(int argc, char** argv) {
}
}
if (!DoFirstStageMount(want_console != FirstStageConsoleParam::CONSOLE_ON_FAILURE)) {
if (!DoFirstStageMount()) {
LOG(FATAL) << "Failed to mount required partitions early ...";
}

View file

@ -82,7 +82,6 @@ class FirstStageMount {
// The factory method to create either FirstStageMountVBootV1 or FirstStageMountVBootV2
// based on device tree configurations.
static std::unique_ptr<FirstStageMount> Create();
bool DoCreateDevices(); // Creates devices and logical partitions from storage devices
bool DoFirstStageMount(); // Mounts fstab entries read from device tree.
bool InitDevices();
@ -245,7 +244,13 @@ std::unique_ptr<FirstStageMount> FirstStageMount::Create() {
}
}
bool FirstStageMount::DoCreateDevices() {
bool FirstStageMount::DoFirstStageMount() {
if (!IsDmLinearEnabled() && fstab_.empty()) {
// Nothing to mount.
LOG(INFO) << "First stage mount skipped (missing/incompatible/empty fstab in device tree)";
return true;
}
if (!InitDevices()) return false;
// Mount /metadata before creating logical partitions, since we need to
@ -264,16 +269,6 @@ bool FirstStageMount::DoCreateDevices() {
if (!CreateLogicalPartitions()) return false;
return true;
}
bool FirstStageMount::DoFirstStageMount() {
if (!IsDmLinearEnabled() && fstab_.empty()) {
// Nothing to mount.
LOG(INFO) << "First stage mount skipped (missing/incompatible/empty fstab in device tree)";
return true;
}
if (!MountPartitions()) return false;
return true;
@ -834,18 +829,8 @@ bool FirstStageMountVBootV2::InitAvbHandle() {
// Public functions
// ----------------
// Creates devices and logical partitions from storage devices
bool DoCreateDevices() {
std::unique_ptr<FirstStageMount> handle = FirstStageMount::Create();
if (!handle) {
LOG(ERROR) << "Failed to create FirstStageMount";
return false;
}
return handle->DoCreateDevices();
}
// Mounts partitions specified by fstab in device tree.
bool DoFirstStageMount(bool create_devices) {
bool DoFirstStageMount() {
// Skips first stage mount if we're in recovery mode.
if (IsRecoveryMode()) {
LOG(INFO) << "First stage mount skipped (recovery mode)";
@ -857,11 +842,6 @@ bool DoFirstStageMount(bool create_devices) {
LOG(ERROR) << "Failed to create FirstStageMount";
return false;
}
if (create_devices) {
if (!handle->DoCreateDevices()) return false;
}
return handle->DoFirstStageMount();
}

View file

@ -19,8 +19,7 @@
namespace android {
namespace init {
bool DoCreateDevices();
bool DoFirstStageMount(bool create_devices);
bool DoFirstStageMount();
void SetInitAvbVersionInRecovery();
} // namespace init