diff options
Diffstat (limited to 'block')
| -rw-r--r-- | block/blk-cgroup.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c index 6bd0619a7d6e..c30661ddc873 100644 --- a/block/blk-cgroup.c +++ b/block/blk-cgroup.c | |||
| @@ -202,6 +202,12 @@ static struct blkcg_gq *blkg_create(struct blkcg *blkcg, | |||
| 202 | WARN_ON_ONCE(!rcu_read_lock_held()); | 202 | WARN_ON_ONCE(!rcu_read_lock_held()); |
| 203 | lockdep_assert_held(&q->queue_lock); | 203 | lockdep_assert_held(&q->queue_lock); |
| 204 | 204 | ||
| 205 | /* request_queue is dying, do not create/recreate a blkg */ | ||
| 206 | if (blk_queue_dying(q)) { | ||
| 207 | ret = -ENODEV; | ||
| 208 | goto err_free_blkg; | ||
| 209 | } | ||
| 210 | |||
| 205 | /* blkg holds a reference to blkcg */ | 211 | /* blkg holds a reference to blkcg */ |
| 206 | if (!css_tryget_online(&blkcg->css)) { | 212 | if (!css_tryget_online(&blkcg->css)) { |
| 207 | ret = -ENODEV; | 213 | ret = -ENODEV; |
