diff options
Diffstat (limited to 'etc/systemd')
-rwxr-xr-x | etc/systemd/system-generators/zfs-mount-generator.in | 22 |
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}" |