diff options
author | Brian Behlendorf <[email protected]> | 2015-06-05 11:26:35 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2015-06-11 10:27:25 -0700 |
commit | c5528b9ba622421a213e128704de4090fa0db773 (patch) | |
tree | 8da399689252cb85f084a33e05a60c8a3f8ffb74 | |
parent | 4f34bd9792bad1affe5b93aeef406fd7dc2df0f8 (diff) |
Use taskq_wait_outstanding() function
Replace taskq_wait() with taskq_wait_oustanding(). This way callers
will only block until previously submitted tasks have been completed.
This was the previous behavior of task_wait() prior to the introduction
of taskq_wait_outstanding() so this isn't really a functionalty change
for these callers.
Signed-off-by: Tim Chase <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
-rw-r--r-- | module/zfs/metaslab.c | 4 | ||||
-rw-r--r-- | module/zfs/txg.c | 2 | ||||
-rw-r--r-- | module/zfs/zfs_vfsops.c | 6 |
3 files changed, 6 insertions, 6 deletions
diff --git a/module/zfs/metaslab.c b/module/zfs/metaslab.c index 164b6b87e..7ff1a4f5a 100644 --- a/module/zfs/metaslab.c +++ b/module/zfs/metaslab.c @@ -556,7 +556,7 @@ metaslab_group_passivate(metaslab_group_t *mg) return; } - taskq_wait(mg->mg_taskq); + taskq_wait_outstanding(mg->mg_taskq, 0); metaslab_group_alloc_update(mg); mgprev = mg->mg_prev; @@ -1596,7 +1596,7 @@ metaslab_group_preload(metaslab_group_t *mg) int m = 0; if (spa_shutting_down(spa) || !metaslab_preload_enabled) { - taskq_wait(mg->mg_taskq); + taskq_wait_outstanding(mg->mg_taskq, 0); return; } diff --git a/module/zfs/txg.c b/module/zfs/txg.c index 2977bf9f3..c542b0a75 100644 --- a/module/zfs/txg.c +++ b/module/zfs/txg.c @@ -471,7 +471,7 @@ txg_wait_callbacks(dsl_pool_t *dp) tx_state_t *tx = &dp->dp_tx; if (tx->tx_commit_cb_taskq != NULL) - taskq_wait(tx->tx_commit_cb_taskq); + taskq_wait_outstanding(tx->tx_commit_cb_taskq, 0); } static void diff --git a/module/zfs/zfs_vfsops.c b/module/zfs/zfs_vfsops.c index e86b21aee..2b532a333 100644 --- a/module/zfs/zfs_vfsops.c +++ b/module/zfs/zfs_vfsops.c @@ -1152,8 +1152,8 @@ zfs_sb_teardown(zfs_sb_t *zsb, boolean_t unmounting) */ int round = 0; while (zsb->z_nr_znodes > 0) { - taskq_wait(dsl_pool_iput_taskq(dmu_objset_pool( - zsb->z_os))); + taskq_wait_outstanding(dsl_pool_iput_taskq( + dmu_objset_pool(zsb->z_os)), 0); if (++round > 1 && !unmounting) break; } @@ -1740,7 +1740,7 @@ zfs_init(void) void zfs_fini(void) { - taskq_wait(system_taskq); + taskq_wait_outstanding(system_taskq, 0); unregister_filesystem(&zpl_fs_type); zfs_znode_fini(); zfsctl_fini(); |