cfq-iosched: Reduce linked group count upon group destruction
authorVivek Goyal <vgoyal@redhat.com>
Tue, 2 Aug 2011 07:24:09 +0000 (09:24 +0200)
committerJens Axboe <jaxboe@fusionio.com>
Tue, 2 Aug 2011 07:24:09 +0000 (09:24 +0200)
commita5395b83b78f62ccf5e3af854aacd025c2a6e7b5
tree9705672ce8d806582abe667f06b4d302954b1795
parente5a94f56845bb4b272d82e84b5a1e2080b07ba82
cfq-iosched: Reduce linked group count upon group destruction

FQ keeps track of number of groups which are linked on blkcg->blkg_list.
This is useful to avoid races between queue exit and cgroup exit code
paths. So if at the request queue exit time linked group count is not
zero, that means there are some group out there which is yet to be
deleted under rcu read period and queue exit code should wait for
on rcu period.

In my previous patch I forgot to decrease the number of group count.
So in current form, we nr_blkcg_linked_grps is always non-zero and
we will always wait one rcu period (if BLK_CGROUP=y). The side effect
of this is that it can increase boot time. I am surprised, nobody
complained so far.

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