]> git.proxmox.com Git - mirror_zfs.git/commit - module/zfs/spa.c
OpenZFS 7743 - per-vdev-zaps init path for upgrade
authorDon Brady <don.brady@intel.com>
Fri, 13 Jan 2017 21:50:22 +0000 (14:50 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 13 Jan 2017 21:50:22 +0000 (13:50 -0800)
commit38640550f28c5acd94621f3452fab428df469bdb
treee0baedb3e1caa828f829fa80e2a2638aa2e5815b
parentfdbaf44ffbff109613fee5a04f190df5a34fdfcc
OpenZFS 7743 - per-vdev-zaps init path for upgrade

Authored by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Don Brady <don.brady@intel.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Joe Stein <jas14@cs.brown.edu>
Ported-by: Don Brady <don.brady@intel.com>
When loading a pool that had been created before the existance of
per-vdev zaps, on a system that knows about per-vdev zaps, the
per-vdev zaps will not be allocated and initialized.

This appears to be because the logic that would have done so, in
spa_sync_config_object(), is not reached under normal operation. It is
only reached if spa_config_dirty_list is non-empty.

The fix is to add another `AVZ_ACTION_` enum that will allow this code
to be reached when we detect that we're loading an old pool, even when
there are no dirty configs.

OpenZFS-issue: https://www.illumos.org/issues/7743
OpenZFS-commit: https://github.com/openzfs/openzfs/commit/e2d29d0
Closes #5582
include/sys/spa_impl.h
module/zfs/spa.c