Prevent reclaim in the traverse prefetch thread

Reclaim in the traverse prefetch thread, which is run on the system
taskq, can overrun the stack.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tim Chase <tim@chase2k.com>
Closes #3733
This commit is contained in:
Tim Chase 2015-09-03 07:13:15 -05:00 committed by Brian Behlendorf
parent 0282c4137e
commit dca8c34da4

View File

@ -476,6 +476,7 @@ traverse_prefetch_thread(void *arg)
traverse_data_t *td_main = arg;
traverse_data_t td = *td_main;
zbookmark_phys_t czb;
fstrans_cookie_t cookie = spl_fstrans_mark();
td.td_func = traverse_prefetcher;
td.td_arg = td_main->td_pfd;
@ -489,6 +490,7 @@ traverse_prefetch_thread(void *arg)
td_main->td_pfd->pd_exited = B_TRUE;
cv_broadcast(&td_main->td_pfd->pd_cv);
mutex_exit(&td_main->td_pfd->pd_mtx);
spl_fstrans_unmark(cookie);
}
/*