aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/iocontext.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/iocontext.h')
-rw-r--r--include/linux/iocontext.h16
1 files changed, 5 insertions, 11 deletions
diff --git a/include/linux/iocontext.h b/include/linux/iocontext.h
index 1a3018063034..81a8870ac224 100644
--- a/include/linux/iocontext.h
+++ b/include/linux/iocontext.h
@@ -120,18 +120,12 @@ struct io_context {
120 struct work_struct release_work; 120 struct work_struct release_work;
121}; 121};
122 122
123static inline struct io_context *ioc_task_link(struct io_context *ioc) 123static inline void ioc_task_link(struct io_context *ioc)
124{ 124{
125 /* 125 WARN_ON_ONCE(atomic_long_read(&ioc->refcount) <= 0);
126 * if ref count is zero, don't allow sharing (ioc is going away, it's 126 WARN_ON_ONCE(atomic_read(&ioc->nr_tasks) <= 0);
127 * a race). 127 atomic_long_inc(&ioc->refcount);
128 */ 128 atomic_inc(&ioc->nr_tasks);
129 if (ioc && atomic_long_inc_not_zero(&ioc->refcount)) {
130 atomic_inc(&ioc->nr_tasks);
131 return ioc;
132 }
133
134 return NULL;
135} 129}
136 130
137struct task_struct; 131struct task_struct;