summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Laager <[email protected]>2020-05-30 20:39:31 -0500
committerBrian Behlendorf <[email protected]>2020-08-28 10:17:14 -0700
commit62663fb7ec191ca2f872aec1636e94934212936f (patch)
tree3880f1eea03ba5db354b6a62a9c6a348055cb9b6
parentec41cafee1dac132775ca3eaa9aa7f56cf30b30f (diff)
Fix another dependency loop
zfs-load-key-DATASET.service was gaining an After=systemd-journald.socket due to its stdout/stderr going to the journal (which is the default). systemd-journald.socket has an After (via RequiresMountsFor=/run/systemd/journal) on -.mount. If the root filesystem is encrypted, -.mount gets an After zfs-load-key-DATASET.service. By setting stdout and stderr to null on the key load services, we avoid this loop. Reviewed-by: Antonio Russo <[email protected]> Reviewed-by: InsanePrawn <[email protected]> Signed-off-by: Richard Laager <[email protected]> Closes #10356 Closes #10388
-rwxr-xr-xetc/systemd/system-generators/zfs-mount-generator.in4
1 files changed, 4 insertions, 0 deletions
diff --git a/etc/systemd/system-generators/zfs-mount-generator.in b/etc/systemd/system-generators/zfs-mount-generator.in
index de49afe8b..28439f424 100755
--- a/etc/systemd/system-generators/zfs-mount-generator.in
+++ b/etc/systemd/system-generators/zfs-mount-generator.in
@@ -221,6 +221,10 @@ ${keymountdep}
[Service]
Type=oneshot
RemainAfterExit=yes
+# This avoids a dependency loop involving systemd-journald.socket if this
+# dataset is a parent of the root filesystem.
+StandardOutput=null
+StandardError=null
ExecStart=${keyloadcmd}
ExecStop=${keyunloadcmd}" > "${dest_norm}/${keyloadunit}"
fi