summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2021-11-12 22:55:14 +0100
committerGitHub <noreply@github.com>2021-11-12 22:55:14 +0100
commit0881991c3236a894378167ea9006dbf15a56ba58 (patch)
tree35669ab12ebbf7bf6cb4ac5c430281ecebd67575
parent423de192231c6df4f86042ac6569eb25ed892c3b (diff)
parentdb42f011c6302dd2012b3f46c0ced31de12b5051 (diff)
downloadsystemd-0881991c3236a894378167ea9006dbf15a56ba58.tar.gz
Merge pull request #21329 from poettering/homed-compress-default
homed: default to btrfs compression
-rw-r--r--docs/ENVIRONMENT.md6
-rw-r--r--src/home/homework-mount.c13
2 files changed, 18 insertions, 1 deletions
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.
diff --git a/src/home/homework-mount.c b/src/home/homework-mount.c
index 82b461a987..234b965dc8 100644
--- a/src/home/homework-mount.c
+++ b/src/home/homework-mount.c
@@ -20,12 +20,23 @@
#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"))
return "noquota";
if (streq(fstype, "btrfs"))
- return "noacl";
+ return "noacl,compress=zstd:1";
return NULL;
}