From c56f06166b555f5f5c1391639c3088cd6cc9ba3d Mon Sep 17 00:00:00 2001 From: Rusty Bird Date: Mon, 15 Feb 2021 14:10:44 +0000 Subject: [PATCH] storage/reflink: tweak FICLONE definition Get rid of an otherwise unused module-level variable (HOST_MACHINE), and show the relevant file (reflink.py) in the error message: Traceback (most recent call last): File "/usr/bin/qubesd", line 2, in from qubes.tools.qubesd import main File "/usr/lib/python3.8/site-packages/qubes/__init__.py", line 801, in from qubes.app import Qubes File "/usr/lib/python3.8/site-packages/qubes/app.py", line 64, in import qubes.storage.reflink File "/usr/lib/python3.8/site-packages/qubes/storage/reflink.py", line 46, in FICLONE = { KeyError: 'armv7l' qubesd.service: Main process exited, code=exited, status=1/FAILURE --- qubes/storage/reflink.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/qubes/storage/reflink.py b/qubes/storage/reflink.py index 3a550a9f..4189b5a0 100644 --- a/qubes/storage/reflink.py +++ b/qubes/storage/reflink.py @@ -30,28 +30,27 @@ import functools import glob import logging import os +import platform import subprocess import tempfile -import platform -import sys from contextlib import suppress import qubes.storage import qubes.utils -HOST_MACHINE = platform.machine() -if HOST_MACHINE == "x86_64": - FICLONE = 0x40049409 # defined in -elif HOST_MACHINE == "ppc64le": - FICLONE = 0x80049409 -else: - print("Missing IOCTL definitions for platform {}".format(HOST_MACHINE)) - sys.exit(1) - -LOOP_SET_CAPACITY = 0x4C07 # defined in LOGGER = logging.getLogger('qubes.storage.reflink') +# defined in +LOOP_SET_CAPACITY = 0x4C07 + +# defined in +FICLONE = { + 'x86_64': 0x40049409, + 'ppc64le': 0x80049409, +}[platform.machine()] + + def _coroutinized(function): ''' Wrap a synchronous function in a coroutine that runs the function via the event loop's ThreadPool-based default @@ -64,6 +63,7 @@ def _coroutinized(function): None, functools.partial(function, *args, **kwargs))) return wrapper + class ReflinkPool(qubes.storage.Pool): driver = 'file-reflink' _known_dir_path_prefixes = ['appvms', 'vm-templates']