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

Commit b8336694 authored by David Anderson's avatar David Anderson Committed by Automerger Merge Worker
Browse files

Merge "overlayfs: Use userxattrs on supporting kernels." am: 92b3b3ff

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

Change-Id: I77c231fb1e56b513442ba228d10df06e77eed318
parents c8f27249 92b3b3ff
Loading
Loading
Loading
Loading
+14 −0
Original line number Original line Diff line number Diff line
@@ -322,6 +322,17 @@ std::string fs_mgr_get_overlayfs_candidate(const std::string& mount_point) {
const auto kLowerdirOption = "lowerdir="s;
const auto kLowerdirOption = "lowerdir="s;
const auto kUpperdirOption = "upperdir="s;
const auto kUpperdirOption = "upperdir="s;


static inline bool KernelSupportsUserXattrs() {
    struct utsname uts;
    uname(&uts);

    int major, minor;
    if (sscanf(uts.release, "%d.%d", &major, &minor) != 2) {
        return false;
    }
    return major > 5 || (major == 5 && minor >= 15);
}

// default options for mount_point, returns empty string for none available.
// default options for mount_point, returns empty string for none available.
std::string fs_mgr_get_overlayfs_options(const std::string& mount_point) {
std::string fs_mgr_get_overlayfs_options(const std::string& mount_point) {
    auto candidate = fs_mgr_get_overlayfs_candidate(mount_point);
    auto candidate = fs_mgr_get_overlayfs_candidate(mount_point);
@@ -331,6 +342,9 @@ std::string fs_mgr_get_overlayfs_options(const std::string& mount_point) {
    if (fs_mgr_overlayfs_valid() == OverlayfsValidResult::kOverrideCredsRequired) {
    if (fs_mgr_overlayfs_valid() == OverlayfsValidResult::kOverrideCredsRequired) {
        ret += ",override_creds=off";
        ret += ",override_creds=off";
    }
    }
    if (KernelSupportsUserXattrs()) {
        ret += ",userxattr";
    }
    return ret;
    return ret;
}
}