Loading fs_mgr/fs_mgr.cpp +18 −1 Original line number Diff line number Diff line Loading @@ -2328,7 +2328,24 @@ bool fs_mgr_mount_overlayfs_fstab_entry(const FstabEntry& entry) { return false; } auto options = "lowerdir=" + entry.lowerdir; auto lowerdir = entry.lowerdir; if (entry.fs_mgr_flags.overlayfs_remove_missing_lowerdir) { bool removed_any = false; std::vector<std::string> lowerdirs; for (const auto& dir : android::base::Split(entry.lowerdir, ":")) { if (access(dir.c_str(), F_OK)) { PWARNING << __FUNCTION__ << "(): remove missing lowerdir '" << dir << "'"; removed_any = true; } else { lowerdirs.push_back(dir); } } if (removed_any) { lowerdir = android::base::Join(lowerdirs, ":"); } } auto options = "lowerdir=" + lowerdir; if (overlayfs_valid_result == OverlayfsValidResult::kOverrideCredsRequired) { options += ",override_creds=off"; } Loading fs_mgr/fs_mgr_fstab.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -181,6 +181,7 @@ void ParseFsMgrFlags(const std::string& flags, FstabEntry* entry) { CheckFlag("fsverity", fs_verity); CheckFlag("metadata_csum", ext_meta_csum); CheckFlag("fscompress", fs_compress); CheckFlag("overlayfs_remove_missing_lowerdir", overlayfs_remove_missing_lowerdir); #undef CheckFlag Loading fs_mgr/include_fstab/fstab/fstab.h +1 −0 Original line number Diff line number Diff line Loading @@ -86,6 +86,7 @@ struct FstabEntry { bool fs_verity : 1; bool ext_meta_csum : 1; bool fs_compress : 1; bool overlayfs_remove_missing_lowerdir : 1; } fs_mgr_flags = {}; bool is_encryptable() const { Loading Loading
fs_mgr/fs_mgr.cpp +18 −1 Original line number Diff line number Diff line Loading @@ -2328,7 +2328,24 @@ bool fs_mgr_mount_overlayfs_fstab_entry(const FstabEntry& entry) { return false; } auto options = "lowerdir=" + entry.lowerdir; auto lowerdir = entry.lowerdir; if (entry.fs_mgr_flags.overlayfs_remove_missing_lowerdir) { bool removed_any = false; std::vector<std::string> lowerdirs; for (const auto& dir : android::base::Split(entry.lowerdir, ":")) { if (access(dir.c_str(), F_OK)) { PWARNING << __FUNCTION__ << "(): remove missing lowerdir '" << dir << "'"; removed_any = true; } else { lowerdirs.push_back(dir); } } if (removed_any) { lowerdir = android::base::Join(lowerdirs, ":"); } } auto options = "lowerdir=" + lowerdir; if (overlayfs_valid_result == OverlayfsValidResult::kOverrideCredsRequired) { options += ",override_creds=off"; } Loading
fs_mgr/fs_mgr_fstab.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -181,6 +181,7 @@ void ParseFsMgrFlags(const std::string& flags, FstabEntry* entry) { CheckFlag("fsverity", fs_verity); CheckFlag("metadata_csum", ext_meta_csum); CheckFlag("fscompress", fs_compress); CheckFlag("overlayfs_remove_missing_lowerdir", overlayfs_remove_missing_lowerdir); #undef CheckFlag Loading
fs_mgr/include_fstab/fstab/fstab.h +1 −0 Original line number Diff line number Diff line Loading @@ -86,6 +86,7 @@ struct FstabEntry { bool fs_verity : 1; bool ext_meta_csum : 1; bool fs_compress : 1; bool overlayfs_remove_missing_lowerdir : 1; } fs_mgr_flags = {}; bool is_encryptable() const { Loading