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

Commit cc7ddc04 authored by Yi-yo Chiang's avatar Yi-yo Chiang Committed by Gerrit Code Review
Browse files

Merge "Revert "fs_mgr_overlayfs: Revert to use /data only if VAB""

parents a6930716 956a4548
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -1108,7 +1108,7 @@ static bool CreateScratchOnData(std::string* scratch_device, bool* partition_exi
    return true;
}

static bool CanUseSuperPartition(const Fstab& fstab, bool* is_virtual_ab) {
static bool CanUseSuperPartition(const Fstab& fstab) {
    auto slot_number = fs_mgr_overlayfs_slot_number();
    auto super_device = fs_mgr_overlayfs_super_device(slot_number);
    if (!fs_mgr_rw_access(super_device) || !fs_mgr_overlayfs_has_logical(fstab)) {
@@ -1118,7 +1118,6 @@ static bool CanUseSuperPartition(const Fstab& fstab, bool* is_virtual_ab) {
    if (!metadata) {
        return false;
    }
    *is_virtual_ab = !!(metadata->header.flags & LP_HEADER_FLAG_VIRTUAL_AB_DEVICE);
    return true;
}

@@ -1131,12 +1130,13 @@ bool fs_mgr_overlayfs_create_scratch(const Fstab& fstab, std::string* scratch_de
        return *partition_exists;
    }

    bool is_virtual_ab = false;
    if (CanUseSuperPartition(fstab, &is_virtual_ab)) {
    // Try ImageManager on /data first.
    bool can_use_data = false;
        if (is_virtual_ab && FilesystemHasReliablePinning("/data", &can_use_data) && can_use_data) {
    if (FilesystemHasReliablePinning("/data", &can_use_data) && can_use_data) {
        return CreateScratchOnData(scratch_device, partition_exists);
    }
    // If that fails, see if we can land on super.
    if (CanUseSuperPartition(fstab)) {
        return CreateDynamicScratch(scratch_device, partition_exists);
    }
    return false;