- 04 12月, 2009 1 次提交
-
-
由 Louis Rilling 提交于
With CLONE_IO, copy_io() increments both ioc->refcount and ioc->nr_tasks. However exit_io_context() only decrements ioc->refcount if ioc->nr_tasks reaches 0. Always call put_io_context() in exit_io_context(). Signed-off-by: NLouis Rilling <louis.rilling@kerlabs.com> Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
-
- 11 6月, 2009 1 次提交
-
-
由 Nikanth Karthikesan 提交于
Currently io_context has an atomic_t(32-bit) as refcount. In the case of cfq, for each device against whcih a task does I/O, a reference to the io_context would be taken. And when there are multiple process sharing io_contexts(CLONE_IO) would also have a reference to the same io_context. Theoretically the possible maximum number of processes sharing the same io_context + the number of disks/cfq_data referring to the same io_context can overflow the 32-bit counter on a very high-end machine. Even though it is an improbable case, let us make it atomic_long_t. Signed-off-by: NNikanth Karthikesan <knikanth@suse.de> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
-
- 07 5月, 2008 1 次提交
-
-
由 Jens Axboe 提交于
put_io_context() drops the RCU read lock before calling into cfq_dtor(), however we need to hold off freeing there before grabbing and dereferencing the first object on the list. So extend the rcu_read_lock() scope to cover the calling of cfq_dtor(), and optimize cfq_free_io_context() to use a new variant for call_for_each_cic() that assumes the RCU read lock is already held. Hit in the wild by Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
-
- 19 2月, 2008 2 次提交
-
-
由 Jens Axboe 提交于
It's cumbersome to browse a radix tree from start to finish, especially since we modify keys when a process exits. So add a hlist for the single purpose of browsing over all known cfq_io_contexts, used for exit, io prio change, etc. This fixes http://bugzilla.kernel.org/show_bug.cgi?id=9948Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
-
由 Adrian Bunk 提交于
blk_ioc_init() can become static. Signed-off-by: NAdrian Bunk <bunk@kernel.org> Signed-off-by: NJens Axboe <axboe@carl.home.kernel.dk>
-
- 01 2月, 2008 1 次提交
-
-
由 Jens Axboe 提交于
It blindly copies everything in the io_context, including the lock. That doesn't work so well for either lock ordering or lockdep. There seems zero point in swapping io contexts on a request to request merge, so the best point of action is to just remove it. Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
-
- 30 1月, 2008 1 次提交
-
-
由 Jens Axboe 提交于
Adds files for barrier handling, rq execution, io context handling, mapping data to requests, and queue settings. Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
-