per-vdev-zaps have no initialize path on upgrade
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.
Updated by Electric Monk about 4 years ago
- Status changed from New to Closed
- % Done changed from 0 to 100
commit 555da5111b0f2552c42d057b211aba89c9c79f6c Author: Paul Dagnelie <email@example.com> Date: 2017-01-12T03:04:49.000Z 7743 per-vdev-zaps have no initialize path on upgrade Reviewed by: Matt Ahrens <firstname.lastname@example.org> Reviewed by: Pavel Zakharov <email@example.com> Reviewed by: George Wilson <firstname.lastname@example.org> Reviewed by: Don Brady <email@example.com> Approved by: Robert Mustacchi <firstname.lastname@example.org>