diff options
author | Tejun Heo <tj@kernel.org> | 2012-04-13 23:50:53 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2012-04-20 10:06:06 +0200 |
commit | 80fd99792b0b9f162abdf3da12fb10eb9eb5f321 (patch) | |
tree | 3273581c76d9bcad18f0668f6707be9323e650fb /kernel/gcov | |
parent | blkcg: make blkg_conf_prep() take @pol and return with queue lock held (diff) | |
download | linux-80fd99792b0b9f162abdf3da12fb10eb9eb5f321.tar.xz linux-80fd99792b0b9f162abdf3da12fb10eb9eb5f321.zip |
blkcg: make sure blkg_lookup() returns %NULL if @q is bypassing
Currently, blkg_lookup() doesn't check @q bypass state. This patch
updates blk_queue_bypass_start() to do synchronize_rcu() before
returning and updates blkg_lookup() to check blk_queue_bypass() and
return %NULL if bypassing. This ensures blkg_lookup() returns %NULL
if @q is bypassing.
This is to guarantee that nobody is accessing policy data while @q is
bypassing, which is necessary to allow replacing blkio_cgroup->pd[] in
place on policy [de]activation.
v2: Added more comments explaining bypass guarantees as suggested by
Vivek.
v3: Added more comments explaining why there's no synchronize_rcu() in
blk_cleanup_queue() as suggested by Vivek.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'kernel/gcov')
0 files changed, 0 insertions, 0 deletions