From a428a4518b7adaae282cf9f1e623a44d4c7191df Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 5 Nov 2021 15:24:58 +0100 Subject: [PATCH 1/3] homework: default to btrfs compression This follows what Fedora did with 34: enables compression by default, lowering IO bandwidth and reducing disk space use, at the price of slightly higher CPU use. https://fedoraproject.org/wiki/Changes/BtrfsTransparentCompression --- src/home/homework-mount.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/home/homework-mount.c b/src/home/homework-mount.c index 82b461a987..d73a908f1c 100644 --- a/src/home/homework-mount.c +++ b/src/home/homework-mount.c @@ -25,7 +25,7 @@ static const char *mount_options_for_fstype(const char *fstype) { if (streq(fstype, "xfs")) return "noquota"; if (streq(fstype, "btrfs")) - return "noacl"; + return "noacl,compress=zstd:1"; return NULL; } From 6309512c0239bd2c78b099c185b38c15fd096153 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 5 Nov 2021 15:26:29 +0100 Subject: [PATCH 2/3] homed: add env var for overriding default mount options This adds an esay way to override the default mount options to use for LUKS home dirs via the env vars SYSTEMD_HOME_MOUNT_OPTIONS_EXT4, SYSTEMD_HOME_MOUNT_OPTIONS_BTRFS, SYSTEMD_HOME_MOUNT_OPTIONS_XFS. See: #15120 --- src/home/homework-mount.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/home/homework-mount.c b/src/home/homework-mount.c index d73a908f1c..234b965dc8 100644 --- a/src/home/homework-mount.c +++ b/src/home/homework-mount.c @@ -20,6 +20,17 @@ #include "user-util.h" static const char *mount_options_for_fstype(const char *fstype) { + const char *e; + char *n; + + assert(fstype); + + /* Allow overriding our built-in defaults with an environment variable */ + n = strjoina("SYSTEMD_HOME_MOUNT_OPTIONS_", fstype); + e = getenv(ascii_strupper(n)); + if (e) + return e; + if (streq(fstype, "ext4")) return "noquota,user_xattr"; if (streq(fstype, "xfs")) From db42f011c6302dd2012b3f46c0ced31de12b5051 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 12 Nov 2021 17:36:53 +0100 Subject: [PATCH 3/3] docs: document new mount option env var --- docs/ENVIRONMENT.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/ENVIRONMENT.md b/docs/ENVIRONMENT.md index 2c61935b6b..5f783ed915 100644 --- a/docs/ENVIRONMENT.md +++ b/docs/ENVIRONMENT.md @@ -433,3 +433,9 @@ SYSTEMD_HOME_DEBUG_SUFFIX=foo \ SYSTEMD_HOME_RECORD_DIR=/var/lib/systemd/home.foo/ \ /home/lennart/projects/systemd/build/systemd-homed ``` + +* `$SYSTEMD_HOME_MOUNT_OPTIONS_BTRFS`, `$SYSTEMD_HOME_MOUNT_OPTIONS_EXT4`, + `$SYSTEMD_HOME_MOUNT_OPTIONS_XFS` – configure the default mount options to + use for LUKS home directories, overriding the built-in default mount + options. There's one variable for each of the supported file systems for the + LUKS home directory backend.