diff options
author | behlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c> | 2008-11-03 20:21:08 +0000 |
---|---|---|
committer | behlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c> | 2008-11-03 20:21:08 +0000 |
commit | 749045bbfa3302f8917ef681373775245b241698 (patch) | |
tree | 1240613ad2cca83df75b11e44d49f276debd4b5e /include/sys/taskq.h | |
parent | f6c81c5ea7ba171bdb9e6d3a29c9e2a7fa6896ad (diff) |
Apply a nice fix caught by Ricardo,
* spl-04-fix-taskq-spinlock-lockup.patch
Fixes a deadlock in the BIO completion handler, due to the taskq code
prematurely re-enabling interrupts when another spinlock had disabled
them in the IDE IRQ handler.
git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@161 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
Diffstat (limited to 'include/sys/taskq.h')
-rw-r--r-- | include/sys/taskq.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/sys/taskq.h b/include/sys/taskq.h index fbcc5556d..cedf5350c 100644 --- a/include/sys/taskq.h +++ b/include/sys/taskq.h @@ -61,6 +61,7 @@ typedef void (task_func_t)(void *); typedef struct taskq { spinlock_t tq_lock; /* protects taskq_t */ + unsigned long tq_lock_flags; /* interrupt state */ struct task_struct **tq_threads; /* thread pointers */ const char *tq_name; /* taskq name */ int tq_nactive; /* # of active threads */ |