mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-24 11:18:52 +03:00
OpenZFS 8063 - verify that we do not attempt to access inactive txg
Authored by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Serapheim Dimitropoulos <serapheim@delphix.com> Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com> Approved by: Robert Mustacchi <rm@joyent.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Ported-by: George Melikov <mail@gmelikov.ru> A standard practice in ZFS is to keep track of "per-txg" state. Any of the 3 active TXG's (open, quiescing, syncing) can have different values for this state. We should assert that we do not attempt to modify other (inactive) TXG's. Porting Notes: - ASSERTV added to txg_sync_waiting() for unused variable. OpenZFS-issue: https://www.illumos.org/issues/8063 OpenZFS-commit: https://github.com/openzfs/openzfs/commit/01acb46 Closes #6109
This commit is contained in:
committed by
Brian Behlendorf
parent
335b251ac1
commit
4747a7d3d4
@@ -161,13 +161,13 @@ dsl_pool_open_impl(spa_t *spa, uint64_t txg)
|
||||
rrw_init(&dp->dp_config_rwlock, B_TRUE);
|
||||
txg_init(dp, txg);
|
||||
|
||||
txg_list_create(&dp->dp_dirty_datasets,
|
||||
txg_list_create(&dp->dp_dirty_datasets, spa,
|
||||
offsetof(dsl_dataset_t, ds_dirty_link));
|
||||
txg_list_create(&dp->dp_dirty_zilogs,
|
||||
txg_list_create(&dp->dp_dirty_zilogs, spa,
|
||||
offsetof(zilog_t, zl_dirty_link));
|
||||
txg_list_create(&dp->dp_dirty_dirs,
|
||||
txg_list_create(&dp->dp_dirty_dirs, spa,
|
||||
offsetof(dsl_dir_t, dd_dirty_link));
|
||||
txg_list_create(&dp->dp_sync_tasks,
|
||||
txg_list_create(&dp->dp_sync_tasks, spa,
|
||||
offsetof(dsl_sync_task_t, dst_node));
|
||||
|
||||
dp->dp_sync_taskq = taskq_create("dp_sync_taskq",
|
||||
|
||||
Reference in New Issue
Block a user