Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit daef3208 authored by Yi-Yo Chiang's avatar Yi-Yo Chiang Committed by Automerger Merge Worker
Browse files

Merge "fs_mgr: Add fs_mgr_flag overlayfs_remove_missing_lowerdir" am: 215fde0f am: 09727a9a

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

Change-Id: Iede7a28794681c35e5421d11dedc748392e2555b
parents bceac080 09727a9a
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -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";
    }
+1 −0
Original line number Diff line number Diff line
@@ -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

+1 −0
Original line number Diff line number Diff line
@@ -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 {