From d9a7823c54a36d7bec61dc5ed2921789da371fcf Mon Sep 17 00:00:00 2001 From: Alessandro Astone Date: Thu, 19 Jan 2023 19:11:00 +0100 Subject: [PATCH] mount: Only disable overlayfs xino on kernels that support it --- tools/actions/upgrader.py | 4 +--- tools/helpers/__init__.py | 1 + tools/helpers/mount.py | 6 +++++- tools/helpers/version.py | 7 +++++++ 4 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 tools/helpers/version.py diff --git a/tools/actions/upgrader.py b/tools/actions/upgrader.py index 3a0dcba..dcd033d 100644 --- a/tools/actions/upgrader.py +++ b/tools/actions/upgrader.py @@ -3,6 +3,7 @@ import logging import os from tools import helpers +from tools.helpers.version import versiontuple import tools.config import dbus @@ -16,9 +17,6 @@ def get_config(args): args.session = None def migration(args): - def versiontuple(v): - return tuple(map(int, (v.split(".")))) - try: old_ver = tools.helpers.props.file_get(args, args.work + "/waydroid_base.prop", "waydroid.tools_version") if versiontuple(old_ver) <= versiontuple("1.3.4"): diff --git a/tools/helpers/__init__.py b/tools/helpers/__init__.py index e906e9c..9b62d06 100644 --- a/tools/helpers/__init__.py +++ b/tools/helpers/__init__.py @@ -11,3 +11,4 @@ import tools.helpers.http import tools.helpers.ipc import tools.helpers.gpu import tools.helpers.protocol +import tools.helpers.version diff --git a/tools/helpers/mount.py b/tools/helpers/mount.py index a0d34be..236ff5b 100644 --- a/tools/helpers/mount.py +++ b/tools/helpers/mount.py @@ -2,6 +2,7 @@ # SPDX-License-Identifier: GPL-3.0-or-later import os import tools.helpers.run +from tools.helpers.version import versiontuple, kernel_version def ismount(folder): @@ -156,7 +157,7 @@ def mount_overlay(args, lower_dirs, destination, upper_dir=None, work_dir=None, Mount an overlay. """ dirs = [*lower_dirs] - options = ["xino=off", "lowerdir=" + (":".join(lower_dirs))] + options = ["lowerdir=" + (":".join(lower_dirs))] if upper_dir: dirs.append(upper_dir) @@ -164,6 +165,9 @@ def mount_overlay(args, lower_dirs, destination, upper_dir=None, work_dir=None, options.append("upperdir=" + upper_dir) options.append("workdir=" + work_dir) + if kernel_version() >= versiontuple("4.17"): + options.append("xino=off") + for dir_path in dirs: if not os.path.exists(dir_path): if create_folders: diff --git a/tools/helpers/version.py b/tools/helpers/version.py new file mode 100644 index 0000000..d8ae449 --- /dev/null +++ b/tools/helpers/version.py @@ -0,0 +1,7 @@ +import os + +def versiontuple(v): + return tuple(map(int, (v.split(".")))) + +def kernel_version(): + return tuple(map(int, os.uname().release.split(".", 2)[:2])) -- 2.47.3