summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2015-06-05 11:26:35 -0700
committerBrian Behlendorf <[email protected]>2015-06-11 10:27:25 -0700
commitc5528b9ba622421a213e128704de4090fa0db773 (patch)
tree8da399689252cb85f084a33e05a60c8a3f8ffb74
parent4f34bd9792bad1affe5b93aeef406fd7dc2df0f8 (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.c4
-rw-r--r--module/zfs/txg.c2
-rw-r--r--module/zfs/zfs_vfsops.c6
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();