Merge pull request #111731 from Mic92/zfs-fix

This commit is contained in:
Jörg Thalheim 2021-02-03 11:03:35 +00:00 committed by GitHub
commit 993bbf7581
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -513,7 +513,7 @@ in
script = (importLib { script = (importLib {
# See comments at importLib definition. # See comments at importLib definition.
zpoolCmd = "${cfgZfs.package}/sbin/zpool"; zpoolCmd = "${cfgZfs.package}/sbin/zpool";
zfsCmd = "${cfgZfs.package}/sbin/zfs"; awkCmd = "${pkgs.gawk}/bin/awk";
inherit cfgZfs; inherit cfgZfs;
}) + '' }) + ''
poolImported "${pool}" && exit poolImported "${pool}" && exit
@ -528,7 +528,7 @@ in
${optionalString (if isBool cfgZfs.requestEncryptionCredentials ${optionalString (if isBool cfgZfs.requestEncryptionCredentials
then cfgZfs.requestEncryptionCredentials then cfgZfs.requestEncryptionCredentials
else cfgZfs.requestEncryptionCredentials != []) '' else cfgZfs.requestEncryptionCredentials != []) ''
${packages.zfsUser}/sbin/zfs list -rHo name,keylocation ${pool} | while IFS=$'\t' read ds kl; do ${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 if ! echo '${concatStringsSep "\n" cfgZfs.requestEncryptionCredentials}' | grep -qFx "$ds"; then
continue continue
@ -538,10 +538,10 @@ in
none ) none )
;; ;;
prompt ) prompt )
${config.systemd.package}/bin/systemd-ask-password "Enter key for $ds:" | ${packages.zfsUser}/sbin/zfs load-key "$ds" ${config.systemd.package}/bin/systemd-ask-password "Enter key for $ds:" | ${cfgZfs.package}/sbin/zfs load-key "$ds"
;; ;;
* ) * )
${packages.zfsUser}/sbin/zfs load-key "$ds" ${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 done