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:
commit
e2b0d1a809
3 changed files with 10 additions and 35 deletions
|
@ -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 ...";
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -19,8 +19,7 @@
|
|||
namespace android {
|
||||
namespace init {
|
||||
|
||||
bool DoCreateDevices();
|
||||
bool DoFirstStageMount(bool create_devices);
|
||||
bool DoFirstStageMount();
|
||||
void SetInitAvbVersionInRecovery();
|
||||
|
||||
} // namespace init
|
||||
|
|
Loading…
Reference in a new issue