summaryrefslogtreecommitdiffstats
path: root/include/sys/spa_impl.h
diff options
context:
space:
mode:
authorSerapheim Dimitropoulos <[email protected]>2019-07-18 12:55:29 -0700
committerBrian Behlendorf <[email protected]>2019-07-18 12:55:29 -0700
commit1c44a5c97fabc669885df84c3e9b6b5e16f0cd35 (patch)
tree20a8f88392e42656969419159cde37efc3c19633 /include/sys/spa_impl.h
parentbac15c11983e72cfd8ce10512aa9d227135bbca0 (diff)
hdr_recl calls zthr_wakeup() on destroyed zthr
There exists a race condition were hdr_recl() calls zthr_wakeup() on a destroyed zthr. The timeline is the following: [1] hdr_recl() runs first and goes intro zthr_wakeup() because arc_initialized is set. [2] arc_fini() is called by another thread, zeroes that flag, destroying the zthr, and goes into buf_init(). [3] hdr_recl() tries to enter the destroyed mutex and we blow up. This patch ensures that the ARC's zthrs are not offloaded any new work once arc_initialized is set and then destroys them after all of the ARC state has been deleted. Reviewed by: Matt Ahrens <[email protected]> Reviewed by: Brian Behlendorf <[email protected]> Signed-off-by: Serapheim Dimitropoulos <[email protected]> Closes #9047
Diffstat (limited to 'include/sys/spa_impl.h')
0 files changed, 0 insertions, 0 deletions