aboutsummaryrefslogtreecommitdiffstats
path: root/include/sys/dnode.h
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2018-01-31 09:33:33 -0800
committerGitHub <[email protected]>2018-01-31 09:33:33 -0800
commitf90a30ad1b32a971f62a540f8944e42f99b254ce (patch)
treebe89a5aeb59e7bc3161842adc899a0f13d4ee310 /include/sys/dnode.h
parent1d8a71b603769214a73bc9720107c4bd97206bff (diff)
Fix txg_sync_thread hang in scan_exec_io()
When scn->scn_maxinflight_bytes has not been initialized it's possible to hang on the condition variable in scan_exec_io(). This issue was uncovered by ztest and is only possible when deduplication is enabled through the following call path. txg_sync_thread() spa_sync() ddt_sync_table() ddt_sync_entry() dsl_scan_ddt_entry() dsl_scan_scrub_cb() dsl_scan_enqueuei() scan_exec_io() cv_wait() Resolve the issue by always initializing scn_maxinflight_bytes to a reasonable minimum value. This value will be recalculated in dsl_scan_sync() to pick up changes to zfs_scan_vdev_limit and the addition/removal of vdevs. Reviewed-by: Tom Caputi <[email protected]> Reviewed by: George Melikov <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #7098
Diffstat (limited to 'include/sys/dnode.h')
0 files changed, 0 insertions, 0 deletions