Avoid here-documents in systemd mount generator
On some systems - openSUSE, for example - there is not yet a writeable temporary file system available, so bash bails out with an error, 'cannot create temp file for here-document: Read-only file system', on the here documents in zfs-mount-generator. The simple fix is to change these into a multi-line echo statement. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-By: Richard Laager <rlaager@wiktel.com> Reviewed-by: George Melikov <mail@gmelikov.ru> Signed-off-by: Lorenz Hüdepohl <dev@stellardeath.org> Closes #9802
This commit is contained in:
parent
67709516db
commit
028e3b3b1a
|
@ -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}"
|
||||
|
|
Loading…
Reference in New Issue