mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-01-13 19:50:25 +03:00
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_main = arg;
|
||||||
traverse_data_t td = *td_main;
|
traverse_data_t td = *td_main;
|
||||||
zbookmark_phys_t czb;
|
zbookmark_phys_t czb;
|
||||||
|
fstrans_cookie_t cookie = spl_fstrans_mark();
|
||||||
|
|
||||||
td.td_func = traverse_prefetcher;
|
td.td_func = traverse_prefetcher;
|
||||||
td.td_arg = td_main->td_pfd;
|
td.td_arg = td_main->td_pfd;
|
||||||
@ -489,6 +490,7 @@ traverse_prefetch_thread(void *arg)
|
|||||||
td_main->td_pfd->pd_exited = B_TRUE;
|
td_main->td_pfd->pd_exited = B_TRUE;
|
||||||
cv_broadcast(&td_main->td_pfd->pd_cv);
|
cv_broadcast(&td_main->td_pfd->pd_cv);
|
||||||
mutex_exit(&td_main->td_pfd->pd_mtx);
|
mutex_exit(&td_main->td_pfd->pd_mtx);
|
||||||
|
spl_fstrans_unmark(cookie);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user