Files
mirror_zfs/include/sys
Richard Yao a430c11f0b Make taskq_member() use ->journal_info
The ->journal_info pointer in the task_struct is reserved for use by
filesystems and because the kernel can have multiple file systems on the
same stack due to direct reclaim, each filesystem that touches
->journal_info in a callback function will save the value at the start
of its frame and restore it at the end of its frame.  This allows us to
safely use ->journal_info to store a pointer to the taskq's struct in
taskq threads so that ZFS code paths can detect the presence of a taskq.
This could break if the ZFS code were to use taskq_member from the
context of direct reclaim. However, there are no such uses of it in that
manner, so this is safe.

This eliminates an O(N) list traversal under a spinlock with an O(1)
unlocked pointer comparison.

Signed-off-by: Richard Yao <ryao@gentoo.org>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: tuxoko <tuxoko@gmail.com>
Signed-off-by: Tim Chase <tim@chase2k.com>
Closes #500
2015-12-08 13:24:47 -08:00
..
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2014-10-17 15:11:50 -07:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2014-10-17 15:11:51 -07:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2015-06-24 14:44:47 -07:00
2013-03-04 19:09:34 -08:00
2013-10-09 13:52:55 -07:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2014-04-25 15:25:32 -07:00
2013-03-04 19:09:34 -08:00
2015-10-13 09:50:40 -07:00
2015-01-16 13:55:09 -08:00
2013-03-04 19:09:34 -08:00
2013-10-25 13:41:52 -07:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2015-10-02 11:21:35 -07:00
2013-10-09 14:20:46 -07:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2014-04-14 09:04:41 -07:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2015-12-08 13:24:47 -08:00
2014-04-09 19:17:12 -07:00
2014-04-14 09:32:01 -07:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2015-01-16 13:55:08 -08:00
2013-03-04 19:09:34 -08:00
2015-08-24 10:10:21 -07:00
2013-03-04 19:09:34 -08:00
2015-12-03 15:44:47 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2013-03-04 19:09:34 -08:00
2015-06-29 09:26:29 -07:00
2015-04-24 13:02:37 -07:00
2013-03-04 19:09:34 -08:00
2015-04-02 09:49:55 -07:00