cfq-iosched: read_lock() does not always imply rcu_read_lock()
authorJens Axboe <jaxboe@fusionio.com>
Tue, 19 Apr 2011 07:10:35 +0000 (09:10 +0200)
committerJens Axboe <jaxboe@fusionio.com>
Tue, 19 Apr 2011 07:10:35 +0000 (09:10 +0200)
commit5f45c69589b7d2953584e6cd0b31e35dbe960ad0
tree7f920cebcbbe6a1435975e355cee15289ddbc428
parentbd900d4580107c899d43b262fbbd995f11097a43
cfq-iosched: read_lock() does not always imply rcu_read_lock()

For some configurations of CONFIG_PREEMPT that is not true. So
get rid of __call_for_each_cic() and always uses the explicitly
rcu_read_lock() protected call_for_each_cic() instead.

This fixes a potential bug related to IO scheduler removal or
online switching.

Thanks to Paul McKenney for clarifying this.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
block/cfq-iosched.c