summaryrefslogtreecommitdiffstats
path: root/block/blk-sysfs.c
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2013-01-11 19:53:53 +0100
committerJens Axboe <axboe@kernel.dk>2013-01-11 19:53:53 +0100
commitac9a19745196388ae5d828c0be7a1d6e472101f3 (patch)
tree49c47e1a07241653deb4a4b4e7a91626f586ad05 /block/blk-sysfs.c
parent422765c2638924da10ff363b5eed77924911bdc7 (diff)
parent43114018cb0b253fd03c4ff4d42bcdc43389ac1c (diff)
downloadop-kernel-dev-ac9a19745196388ae5d828c0be7a1d6e472101f3.zip
op-kernel-dev-ac9a19745196388ae5d828c0be7a1d6e472101f3.tar.gz
Merge branch 'blkcg-cfq-hierarchy' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup into for-3.9/core
Tejun writes: Hello, Jens. Please consider pulling from the following branch to receive cfq blkcg hierarchy support. The branch is based on top of v3.8-rc2. git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git blkcg-cfq-hierarchy The patchset was reviewd in the following thread. http://thread.gmane.org/gmane.linux.kernel.cgroups/5571
Diffstat (limited to 'block/blk-sysfs.c')
-rw-r--r--block/blk-sysfs.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c
index 7881477..6206a93 100644
--- a/block/blk-sysfs.c
+++ b/block/blk-sysfs.c
@@ -497,6 +497,13 @@ queue_attr_store(struct kobject *kobj, struct attribute *attr,
return res;
}
+static void blk_free_queue_rcu(struct rcu_head *rcu_head)
+{
+ struct request_queue *q = container_of(rcu_head, struct request_queue,
+ rcu_head);
+ kmem_cache_free(blk_requestq_cachep, q);
+}
+
/**
* blk_release_queue: - release a &struct request_queue when it is no longer needed
* @kobj: the kobj belonging to the request queue to be released
@@ -538,7 +545,7 @@ static void blk_release_queue(struct kobject *kobj)
bdi_destroy(&q->backing_dev_info);
ida_simple_remove(&blk_queue_ida, q->id);
- kmem_cache_free(blk_requestq_cachep, q);
+ call_rcu(&q->rcu_head, blk_free_queue_rcu);
}
static const struct sysfs_ops queue_sysfs_ops = {
OpenPOWER on IntegriCloud