From 3a22c9e16e4dc17bd457a92271670429230c0d9f Mon Sep 17 00:00:00 2001 From: Yi-Yo Chiang Date: Fri, 24 Nov 2023 12:20:03 +0800 Subject: [PATCH] fs_mgr_overlayfs: MapScratchPartitionIfNeeded always tries to create scratch Simplify the logic of MapScratchPartitionIfNeeded to just map the scratch partition unconditionally. If there is a "scratch" logical partition available, we just assume it must be needed later to facilitate overlayfs. Going through the fstab & fs_mgr_overlayfs_candidate_list to determine if overlayfs is needed or not might be inaccurate as the fstab passed into MapScratchPartitionIfNeeded is incomplete (it includes only the "first_stage_mount" entries). So the scratch device might not get created even though there are some "late mount" partitions that need the scratch device to facilitate overlayfs. Bug: 306124139 Test: adb-remount-test Change-Id: I8590750e822219dec3d7d3c8648e9c9a5a32f68c --- fs_mgr/fs_mgr_overlayfs_control.cpp | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/fs_mgr/fs_mgr_overlayfs_control.cpp b/fs_mgr/fs_mgr_overlayfs_control.cpp index 9be236d1e..33fb08071 100644 --- a/fs_mgr/fs_mgr_overlayfs_control.cpp +++ b/fs_mgr/fs_mgr_overlayfs_control.cpp @@ -854,21 +854,6 @@ void MapScratchPartitionIfNeeded(Fstab* fstab, return; } - bool want_scratch = false; - for (const auto& entry : fs_mgr_overlayfs_candidate_list(*fstab)) { - if (fs_mgr_is_verity_enabled(entry)) { - continue; - } - if (fs_mgr_overlayfs_already_mounted(fs_mgr_mount_point(entry.mount_point))) { - continue; - } - want_scratch = true; - break; - } - if (!want_scratch) { - return; - } - if (ScratchIsOnData()) { if (auto images = IImageManager::Open("remount", 0ms)) { images->MapAllImages(init);