io context: fix ref counting
authorLi Zefan <lizf@cn.fujitsu.com>
Fri, 31 Jul 2009 06:55:48 +0000 (08:55 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Fri, 31 Jul 2009 06:55:48 +0000 (08:55 +0200)
Commit d9c7d394a8ebacb60097b192939ae9f15235225e
("block: prevent possible io_context->refcount overflow") mistakenly
changed atomic_inc(&ioc->nr_tasks) to atomic_long_inc(&ioc->refcount).

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Acked-by: Nikanth Karthikesan <knikanth@suse.de>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
include/linux/iocontext.h

index dd05434..4da4a75 100644 (file)
@@ -92,7 +92,7 @@ static inline struct io_context *ioc_task_link(struct io_context *ioc)
         * a race).
         */
        if (ioc && atomic_long_inc_not_zero(&ioc->refcount)) {
         * a race).
         */
        if (ioc && atomic_long_inc_not_zero(&ioc->refcount)) {
-               atomic_long_inc(&ioc->refcount);
+               atomic_inc(&ioc->nr_tasks);
                return ioc;
        }
 
                return ioc;
        }