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

Commit c6574f46 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Find a zoned partition automatically" am: b9e18212 am: 86cde046 am: 5effe931

parents f044061d 5effe931
Loading
Loading
Loading
Loading
+5 −8
Original line number Diff line number Diff line
@@ -304,19 +304,16 @@ bool 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, "zoned_device=")) {
            std::string zoned;
            if (ReadFileToString("/sys/class/block/" + arg + "/queue/zoned", &zoned) &&
                android::base::StartsWith(zoned, "host-managed")) {
                entry->zoned_device = "/dev/block/" + arg;
        } else if (flag == "zoned_device") {
            if (access("/dev/block/by-name/zoned_device", F_OK) == 0) {
                entry->zoned_device = "/dev/block/by-name/zoned_device";

                // atgc in f2fs does not support a zoned device
                auto options = Split(entry->fs_options, ",");
                options.erase(std::remove(options.begin(), options.end(), "atgc"), options.end());
                entry->fs_options = android::base::Join(options, ",");
                LINFO << "Removed ATGC in fs_options as " << entry->fs_options;
            } else {
                LWARNING << "Warning: cannot find the zoned device: " << arg;
                LINFO << "Removed ATGC in fs_options as " << entry->fs_options
                      << " for zoned device=" << entry->zoned_device;
            }
        } else {
            LWARNING << "Warning: unknown flag: " << flag;
+6 −0
Original line number Diff line number Diff line
@@ -431,6 +431,12 @@ std::vector<std::string> DeviceHandler::GetBlockDeviceSymlinks(const Uevent& uev
        }
    }

    std::string model;
    if (ReadFileToString("/sys/class/block/" + uevent.device_name + "/queue/zoned", &model) &&
        !StartsWith(model, "none")) {
        links.emplace_back("/dev/block/by-name/zoned_device");
    }

    auto last_slash = uevent.path.rfind('/');
    links.emplace_back(link_path + "/" + uevent.path.substr(last_slash + 1));