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

Commit e1e71b9b authored by Tom Cherry's avatar Tom Cherry Committed by Gerrit Code Review
Browse files

Merge "init: allow first stage mount to read an fstab"

parents dbbbb17c e68bf85f
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -1006,7 +1006,8 @@ int fs_mgr_mount_all(fstab* fstab, int mount_mode) {
        /* Don't mount entries that are managed by vold or not for the mount mode*/
        if ((fstab->recs[i].fs_mgr_flags & (MF_VOLDMANAGED | MF_RECOVERYONLY)) ||
            ((mount_mode == MOUNT_MODE_LATE) && !fs_mgr_is_latemount(&fstab->recs[i])) ||
             ((mount_mode == MOUNT_MODE_EARLY) && fs_mgr_is_latemount(&fstab->recs[i]))) {
            ((mount_mode == MOUNT_MODE_EARLY) && fs_mgr_is_latemount(&fstab->recs[i])) ||
            fs_mgr_is_first_stage_mount(&fstab->recs[i])) {
            continue;
        }

+6 −1
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@ struct fs_mgr_flag_values {

struct flag_list {
    const char *name;
    int flag;
    unsigned int flag;
};

static struct flag_list mount_flags[] = {
@@ -102,6 +102,7 @@ static struct flag_list fs_mgr_flags[] = {
        {"formattable", MF_FORMATTABLE},
        {"slotselect", MF_SLOTSELECT},
        {"nofail", MF_NOFAIL},
        {"first_stage_mount", MF_FIRST_STAGE_MOUNT},
        {"latemount", MF_LATEMOUNT},
        {"reservedsize=", MF_RESERVEDSIZE},
        {"quota", MF_QUOTA},
@@ -998,6 +999,10 @@ int fs_mgr_is_nofail(const struct fstab_rec* fstab) {
    return fstab->fs_mgr_flags & MF_NOFAIL;
}

int fs_mgr_is_first_stage_mount(const struct fstab_rec* fstab) {
    return fstab->fs_mgr_flags & MF_FIRST_STAGE_MOUNT;
}

int fs_mgr_is_latemount(const struct fstab_rec* fstab) {
    return fstab->fs_mgr_flags & MF_LATEMOUNT;
}
+4 −5
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ bool fs_mgr_overlayfs_mount_all(fstab*) {
    return false;
}

bool fs_mgr_overlayfs_mount_all(const std::vector<const fstab_rec*>&) {
bool fs_mgr_overlayfs_mount_all(const std::vector<fstab_rec*>&) {
    return false;
}

@@ -82,7 +82,7 @@ std::vector<std::string> fs_mgr_overlayfs_required_devices(fstab*) {
    return {};
}

std::vector<std::string> fs_mgr_overlayfs_required_devices(const std::vector<const fstab_rec*>&) {
std::vector<std::string> fs_mgr_overlayfs_required_devices(const std::vector<fstab_rec*>&) {
    return {};
}

@@ -805,7 +805,7 @@ bool fs_mgr_overlayfs_mount_all(fstab* fstab) {
    return ret;
}

bool fs_mgr_overlayfs_mount_all(const std::vector<const fstab_rec*>& fsrecs) {
bool fs_mgr_overlayfs_mount_all(const std::vector<fstab_rec*>& fsrecs) {
    std::vector<fstab_rec> recs;
    for (const auto& rec : fsrecs) recs.push_back(*rec);
    fstab fstab = {static_cast<int>(fsrecs.size()), &recs[0]};
@@ -828,8 +828,7 @@ std::vector<std::string> fs_mgr_overlayfs_required_devices(fstab* fstab) {
    return {};
}

std::vector<std::string> fs_mgr_overlayfs_required_devices(
        const std::vector<const fstab_rec*>& fsrecs) {
std::vector<std::string> fs_mgr_overlayfs_required_devices(const std::vector<fstab_rec*>& fsrecs) {
    std::vector<fstab_rec> recs;
    for (const auto& rec : fsrecs) recs.push_back(*rec);
    fstab fstab = {static_cast<int>(fsrecs.size()), &recs[0]};
+2 −0
Original line number Diff line number Diff line
@@ -118,6 +118,8 @@
#define MF_LOGICAL        0x10000000
#define MF_CHECKPOINT_BLK 0x20000000
#define MF_CHECKPOINT_FS  0x40000000
#define MF_FIRST_STAGE_MOUNT \
                          0x80000000
// clang-format on

#define DM_BUF_SIZE 4096
+2 −3
Original line number Diff line number Diff line
@@ -22,10 +22,9 @@
#include <vector>

bool fs_mgr_overlayfs_mount_all(fstab* fstab);
bool fs_mgr_overlayfs_mount_all(const std::vector<const fstab_rec*>& fstab);
bool fs_mgr_overlayfs_mount_all(const std::vector<fstab_rec*>& fstab);
std::vector<std::string> fs_mgr_overlayfs_required_devices(fstab* fstab);
std::vector<std::string> fs_mgr_overlayfs_required_devices(
        const std::vector<const fstab_rec*>& fstab);
std::vector<std::string> fs_mgr_overlayfs_required_devices(const std::vector<fstab_rec*>& fstab);
bool fs_mgr_overlayfs_setup(const char* backing = nullptr, const char* mount_point = nullptr,
                            bool* change = nullptr);
bool fs_mgr_overlayfs_teardown(const char* mount_point = nullptr, bool* change = nullptr);
Loading