fs_mgr: overlay check shared blocks for / if /system is not
For bringup devices that do not have right-sized partition, and if /system is now root, check / to be sure. Consider unshare blocks for ext4 as dead code, provide a strong message to caller to provide all the dependencies to overlayfs. Test: adb-remount-test.sh Bug: 130327601 Change-Id: Iffa7c5f24d8f409e71f89fe9ece274d8c476f6fc
This commit is contained in:
parent
1a17b09174
commit
d6ef9d2411
|
@ -159,6 +159,9 @@ bool fs_mgr_overlayfs_enabled(FstabEntry* entry) {
|
|||
auto save_errno = errno;
|
||||
errno = 0;
|
||||
auto has_shared_blocks = fs_mgr_has_shared_blocks(entry->mount_point, entry->blk_device);
|
||||
if (!has_shared_blocks && (entry->mount_point == "/system")) {
|
||||
has_shared_blocks = fs_mgr_has_shared_blocks("/", entry->blk_device);
|
||||
}
|
||||
// special case for first stage init for system as root (taimen)
|
||||
if (!has_shared_blocks && (errno == ENOENT) && (entry->blk_device == "/dev/root")) {
|
||||
has_shared_blocks = true;
|
||||
|
|
|
@ -371,17 +371,13 @@ int main(int argc, char* argv[]) {
|
|||
continue;
|
||||
}
|
||||
}
|
||||
PLOG(WARNING) << "failed to remount partition dev:" << blk_device << " mnt:" << mount_point;
|
||||
// If errno = EROFS at this point, we are dealing with r/o
|
||||
PLOG(ERROR) << "failed to remount partition dev:" << blk_device << " mnt:" << mount_point;
|
||||
// If errno is EROFS at this point, we are dealing with r/o
|
||||
// filesystem types like squashfs, erofs or ext4 dedupe. We will
|
||||
// consider such a device that does not have CONFIG_OVERLAY_FS
|
||||
// in the kernel as a misconfigured; except for ext4 dedupe.
|
||||
if ((errno == EROFS) && can_reboot) {
|
||||
const std::vector<std::string> msg = {"--fsck_unshare_blocks"};
|
||||
std::string err;
|
||||
if (write_bootloader_message(msg, &err)) reboot(true);
|
||||
LOG(ERROR) << "Failed to set bootloader message: " << err;
|
||||
errno = EROFS;
|
||||
// in the kernel as a misconfigured.
|
||||
if (errno == EROFS) {
|
||||
LOG(ERROR) << "Consider providing all the dependencies to enable overlayfs";
|
||||
}
|
||||
retval = REMOUNT_FAILED;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue