aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xetc/systemd/system-generators/zfs-mount-generator.in22
1 files changed, 14 insertions, 8 deletions
diff --git a/etc/systemd/system-generators/zfs-mount-generator.in b/etc/systemd/system-generators/zfs-mount-generator.in
index 850396fb6..066896009 100755
--- a/etc/systemd/system-generators/zfs-mount-generator.in
+++ b/etc/systemd/system-generators/zfs-mount-generator.in
@@ -104,8 +104,13 @@ process_line() {
fi
# Generate the key-load .service unit
- cat > "${dest_norm}/${keyloadunit}" << EOF
-# Automatically generated by zfs-mount-generator
+ #
+ # Note: It is tempting to use a `<<EOF` style here-document for this, but
+ # bash requires a writable /tmp or $TMPDIR for that. This is not always
+ # available early during boot.
+ #
+ echo \
+"# Automatically generated by zfs-mount-generator
[Unit]
Description=Load ZFS key for ${dataset}
@@ -120,8 +125,7 @@ ${pathdep}
Type=oneshot
RemainAfterExit=yes
ExecStart=${keyloadcmd}
-ExecStop=@sbindir@/zfs unload-key '${dataset}'
-EOF
+ExecStop=@sbindir@/zfs unload-key '${dataset}'" > "${dest_norm}/${keyloadunit}"
fi
# Update the dependencies for the mount file to require the
# key-loading unit.
@@ -235,8 +239,11 @@ EOF
# Create the .mount unit file.
# By ordering before zfs-mount.service, we avoid race conditions.
- cat > "${dest_norm}/${mountfile}" << EOF
-# Automatically generated by zfs-mount-generator
+ #
+ # (Do not use `<<EOF`-style here-documents for this, see warning above)
+ #
+ echo \
+"# Automatically generated by zfs-mount-generator
[Unit]
SourcePath=${cachefile}
@@ -249,8 +256,7 @@ Wants=${wants}
Where=${p_mountpoint}
What=${dataset}
Type=zfs
-Options=defaults${opts},zfsutil
-EOF
+Options=defaults${opts},zfsutil" > "${dest_norm}/${mountfile}"
# Finally, create the appropriate dependency
ln -s "../${mountfile}" "${req_dir}"