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:
parent
0282c4137e
commit
dca8c34da4
@ -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);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user