mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-25 18:59:33 +03:00
Illumos #3639 zpool.cache should skip over readonly pools
3639 zpool.cache should skip over readonly pools Reviewed by: Eric Schrock <eric.schrock@delphix.com> Reviewed by: Adam Leventhal <ahl@delphix.com> Reviewed by: Basil Crow <basil.crow@delphix.com> Approved by: Gordon Ross <gwr@nexenta.com> References: illumos/illumos-gate@fb02ae0252 https://www.illumos.org/issues/3639 Normally we don't list pools that are imported read-only in the cache file, however you can accidentally get one into the cache file by importing and exporting a read-write pool while a read-only pool is imported: $ zpool import -o readonly test1 $ zpool import test2 $ zpool export test2 $ zdb -C This is a problem because if the machine reboots we import all pools in the cache file as read-write. Ported-by: Richard Yao <ryao@gentoo.org> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
parent
78d7a5d780
commit
c61f97f426
@ -225,7 +225,15 @@ spa_config_sync(spa_t *target, boolean_t removing, boolean_t postsysevent)
|
||||
*/
|
||||
nvl = NULL;
|
||||
while ((spa = spa_next(spa)) != NULL) {
|
||||
if (spa == target && removing)
|
||||
/*
|
||||
* Skip over our own pool if we're about to remove
|
||||
* ourselves from the spa namespace or any pool that
|
||||
* is readonly. Since we cannot guarantee that a
|
||||
* readonly pool would successfully import upon reboot,
|
||||
* we don't allow them to be written to the cache file.
|
||||
*/
|
||||
if ((spa == target && removing) ||
|
||||
!spa_writeable(spa))
|
||||
continue;
|
||||
|
||||
mutex_enter(&spa->spa_props_lock);
|
||||
|
Loading…
Reference in New Issue
Block a user