On Thu, Jul 30, 2009 at 11:25:19PM +0200, Pawel Jakub Dawidek wrote: > Hello. > > In the traverse_impl() function we can find this call: > > if (!(flags & TRAVERSE_PREFETCH) || > 0 == taskq_dispatch(system_taskq, traverse_prefetch_thread, > &td, TQ_NOQUEUE)) > pd.pd_exited = B_TRUE; > > Which should call the traverse_prefetch_thread() function with td > argument from a separate thread. This doesn't look safe, as td is > allocated on the stack at the begining of traverse_impl() and won't be > accessible from taskq thread. > > Is my understanding correct?
Actually it should be fine, unless kernel thread stacks are swapable in Solaris. -- Pawel Jakub Dawidek http://www.wheel.pl pjd at FreeBSD.org http://www.FreeBSD.org FreeBSD committer Am I Evil? Yes, I Am! -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 187 bytes Desc: not available URL: <http://mail.opensolaris.org/pipermail/zfs-code/attachments/20090730/cefd506a/attachment.bin>