diff options
Diffstat (limited to 'block/blk-ioc.c')
-rw-r--r-- | block/blk-ioc.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/block/blk-ioc.c b/block/blk-ioc.c index d4ed6000147d..cbdabb0dd6d7 100644 --- a/block/blk-ioc.c +++ b/block/blk-ioc.c | |||
@@ -66,22 +66,22 @@ static void cfq_exit(struct io_context *ioc) | |||
66 | } | 66 | } |
67 | 67 | ||
68 | /* Called by the exitting task */ | 68 | /* Called by the exitting task */ |
69 | void exit_io_context(void) | 69 | void exit_io_context(struct task_struct *task) |
70 | { | 70 | { |
71 | struct io_context *ioc; | 71 | struct io_context *ioc; |
72 | 72 | ||
73 | task_lock(current); | 73 | task_lock(task); |
74 | ioc = current->io_context; | 74 | ioc = task->io_context; |
75 | current->io_context = NULL; | 75 | task->io_context = NULL; |
76 | task_unlock(current); | 76 | task_unlock(task); |
77 | 77 | ||
78 | if (atomic_dec_and_test(&ioc->nr_tasks)) { | 78 | if (atomic_dec_and_test(&ioc->nr_tasks)) { |
79 | if (ioc->aic && ioc->aic->exit) | 79 | if (ioc->aic && ioc->aic->exit) |
80 | ioc->aic->exit(ioc->aic); | 80 | ioc->aic->exit(ioc->aic); |
81 | cfq_exit(ioc); | 81 | cfq_exit(ioc); |
82 | 82 | ||
83 | put_io_context(ioc); | ||
84 | } | 83 | } |
84 | put_io_context(ioc); | ||
85 | } | 85 | } |
86 | 86 | ||
87 | struct io_context *alloc_io_context(gfp_t gfp_flags, int node) | 87 | struct io_context *alloc_io_context(gfp_t gfp_flags, int node) |