summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2008-04-15 09:25:33 +0200
committerJens Axboe <jens.axboe@oracle.com>2008-04-15 09:25:33 +0200
commitd237e5c7ce82b6c7e1aa50348520a0c5a47274fa (patch)
tree7ba37198dea89e4168cb660175057058ebbf11f1 /include
parenta985aabe4d7a720b109c2b63549f8641676a9c88 (diff)
downloadlinux-3.10-d237e5c7ce82b6c7e1aa50348520a0c5a47274fa.tar.gz
linux-3.10-d237e5c7ce82b6c7e1aa50348520a0c5a47274fa.tar.bz2
linux-3.10-d237e5c7ce82b6c7e1aa50348520a0c5a47274fa.zip
io context: increment task attachment count in ioc_task_link()
Thanks to Nikanth Karthikesan <knikanth@suse.de> for reporting this. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/iocontext.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/linux/iocontext.h b/include/linux/iocontext.h
index cac4b364cd4..2b7a1187cb2 100644
--- a/include/linux/iocontext.h
+++ b/include/linux/iocontext.h
@@ -91,8 +91,10 @@ static inline struct io_context *ioc_task_link(struct io_context *ioc)
* if ref count is zero, don't allow sharing (ioc is going away, it's
* a race).
*/
- if (ioc && atomic_inc_not_zero(&ioc->refcount))
+ if (ioc && atomic_inc_not_zero(&ioc->refcount)) {
+ atomic_inc(&ioc->nr_tasks);
return ioc;
+ }
return NULL;
}