mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-10-26 18:05:04 +03:00
zfs_crypto_load_key() only works on encryption roots,
and zfs mount -la would fail if it encounters a datasets that
is sorted before their encroots.
To trigger:
truncate -s 40G /tmp/test
dd if=/dev/urandom of=/tmp/k bs=128 count=1 status=none
zpool create -O encryption=on -O keylocation=file:///tmp/k \
-O keyformat=passphrase test /tmp/test
zfs create -o mountpoint=/a test/a
zfs create -o mountpoint=/b test/b
zfs umount test
zfs unload-key test
zfs mount -la
The final mount errored out with:
Key load error: Keys must be loaded for
encryption root of 'test/a' (test).
Key load error: Keys must be loaded for
encryption root of 'test/b' (test).
And only /test was mounted
This technically breaks the libzfs API, but the previous behavior was
decidedly a bug.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11870
Closes #11875
|
||
|---|---|---|
| .. | ||
| os | ||
| .gitignore | ||
| libzfs_changelist.c | ||
| libzfs_config.c | ||
| libzfs_crypto.c | ||
| libzfs_dataset.c | ||
| libzfs_diff.c | ||
| libzfs_import.c | ||
| libzfs_iter.c | ||
| libzfs_mount.c | ||
| libzfs_pool.c | ||
| libzfs_sendrecv.c | ||
| libzfs_status.c | ||
| libzfs_util.c | ||
| libzfs.abi | ||
| libzfs.pc.in | ||
| libzfs.suppr | ||
| Makefile.am | ||
| THIRDPARTYLICENSE.openssl | ||
| THIRDPARTYLICENSE.openssl.descrip | ||