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

Commit a79bc0d1 authored by Yi-Yo Chiang's avatar Yi-Yo Chiang
Browse files

fs_mgr_fstab: Parse overlayfs options from fs flags

Parse the "lowerdir=" option from fs mount flags instead of fs_mgr flags
for consistency.

Before:

  none /mnt/product/test1 overlay ro lowerdir=/1:/2,first_stage_mount

After:

  none /mnt/product/test1 overlay ro,lowerdir=/1:/2 first_stage_mount

Bug: 188862155
Test: Boot to normal with overlayfs mount entries in first stage fstab
Change-Id: I6d6abd44ab32afadec428005f4aece834f9c8905
Merged-In: I6d6abd44ab32afadec428005f4aece834f9c8905
(cherry picked from commit 7b81023e)
parent bbe92686
Loading
Loading
Loading
Loading
+10 −11
Original line number Diff line number Diff line
@@ -127,16 +127,17 @@ void ParseMountFlags(const std::string& flags, FstabEntry* entry) {
            }
            fs_options.append(flag);

            if (entry->fs_type == "f2fs" && StartsWith(flag, "reserve_root=")) {
                std::string arg;
            if (auto equal_sign = flag.find('='); equal_sign != std::string::npos) {
                    arg = flag.substr(equal_sign + 1);
                }
                const auto arg = flag.substr(equal_sign + 1);
                if (entry->fs_type == "f2fs" && StartsWith(flag, "reserve_root=")) {
                    if (!ParseInt(arg, &entry->reserved_size)) {
                        LWARNING << "Warning: reserve_root= flag malformed: " << arg;
                    } else {
                        entry->reserved_size <<= 12;
                    }
                } else if (StartsWith(flag, "lowerdir=")) {
                    entry->lowerdir = std::move(arg);
                }
            }
        }
    }
@@ -298,8 +299,6 @@ void ParseFsMgrFlags(const std::string& flags, FstabEntry* entry) {
            if (!ParseByteCount(arg, &entry->zram_backingdev_size)) {
                LWARNING << "Warning: zram_backingdev_size= flag malformed: " << arg;
            }
        } else if (StartsWith(flag, "lowerdir=")) {
            entry->lowerdir = arg;
        } else {
            LWARNING << "Warning: unknown flag: " << flag;
        }