summaryrefslogtreecommitdiffstats
path: root/module/zfs
diff options
context:
space:
mode:
Diffstat (limited to 'module/zfs')
-rw-r--r--module/zfs/metaslab.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/module/zfs/metaslab.c b/module/zfs/metaslab.c
index 616a89507..4b5baf6a6 100644
--- a/module/zfs/metaslab.c
+++ b/module/zfs/metaslab.c
@@ -3309,9 +3309,12 @@ metaslab_alloc_dva(spa_t *spa, metaslab_class_t *mc, uint64_t psize,
/*
* For testing, make some blocks above a certain size be gang blocks.
- * This will also test spilling from special to normal.
+ * This will result in more split blocks when using device removal,
+ * and a large number of split blocks coupled with ztest-induced
+ * damage can result in extremely long reconstruction times. This
+ * will also test spilling from special to normal.
*/
- if (psize >= metaslab_force_ganging && (ddi_get_lbolt() & 3) == 0) {
+ if (psize >= metaslab_force_ganging && (spa_get_random(100) < 3)) {
metaslab_trace_add(zal, NULL, NULL, psize, d, TRACE_FORCE_GANG,
allocator);
return (SET_ERROR(ENOSPC));