nixos/zfs: replace parentheses with braces
The parentheses prevent the `continue` line from working by running the enclosed in a subshell -- I noticed that ZFS would start asking me for my password to encrypted child datasets, even though they were not specified in `requestEncryptionCredentials`. The following logs would also be present in the import unit's journal: Oct 31 22:13:17 host systemd[1]: Starting Import ZFS pool "pool"... Oct 31 22:13:44 host zfs-import-pool-start[3711]: importing ZFS pool "pool"... Oct 31 22:13:44 host zfs-import-pool-start[4017]:pool/nix/store/39zij3xcxn4w38v6x8f88bx8y91nv0rm-unit-script-zfs-import-pool-start/bin/zfs-import-pool-start: line 31: continue: only meaningful in a `for', `while', or `until' loop Oct 31 22:13:44 host zfs-import-pool-start[4020]:pool/nix/store/39zij3xcxn4w38v6x8f88bx8y91nv0rm-unit-script-zfs-import-pool-start/bin/zfs-import-pool-start: line 31: continue: only meaningful in a `for', `while', or `until' loop Oct 31 22:15:14 host zfs-import-pool-start[4023]: Failed to query password: Timer expired Oct 31 22:15:14 host zfs-import-pool-start[4024]: Key load error: encryption failure Oct 31 22:15:14 host systemd[1]: zfs-import-pool.service: Main process exited, code=exited, status=255/EXCEPTION Oct 31 22:15:14 host systemd[1]: zfs-import-pool.service: Failed with result 'exit-code'. Oct 31 22:15:14 host systemd[1]: Failed to start Import ZFS pool "pool".
This commit is contained in:
parent
71e05e9287
commit
516b49155e
@ -561,7 +561,8 @@ in
|
||||
then cfgZfs.requestEncryptionCredentials
|
||||
else cfgZfs.requestEncryptionCredentials != []) ''
|
||||
${cfgZfs.package}/sbin/zfs list -rHo name,keylocation ${pool} | while IFS=$'\t' read ds kl; do
|
||||
(${optionalString (!isBool cfgZfs.requestEncryptionCredentials) ''
|
||||
{
|
||||
${optionalString (!isBool cfgZfs.requestEncryptionCredentials) ''
|
||||
if ! echo '${concatStringsSep "\n" cfgZfs.requestEncryptionCredentials}' | grep -qFx "$ds"; then
|
||||
continue
|
||||
fi
|
||||
@ -575,7 +576,8 @@ in
|
||||
* )
|
||||
${cfgZfs.package}/sbin/zfs load-key "$ds"
|
||||
;;
|
||||
esac) < /dev/null # To protect while read ds kl in case anything reads stdin
|
||||
esac
|
||||
} < /dev/null # To protect while read ds kl in case anything reads stdin
|
||||
done
|
||||
''}
|
||||
echo "Successfully imported ${pool}"
|
||||
|
Loading…
Reference in New Issue
Block a user