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? -- 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/f38f18e7/attachment.bin>