From 62663fb7ec191ca2f872aec1636e94934212936f Mon Sep 17 00:00:00 2001 From: Richard Laager Date: Sat, 30 May 2020 20:39:31 -0500 Subject: [PATCH] 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 Reviewed-by: InsanePrawn Signed-off-by: Richard Laager Closes #10356 Closes #10388 --- etc/systemd/system-generators/zfs-mount-generator.in | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/etc/systemd/system-generators/zfs-mount-generator.in b/etc/systemd/system-generators/zfs-mount-generator.in index de49afe8b4a5..28439f424ad9 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