diff options
Diffstat (limited to 'block')
-rw-r--r-- | block/bfq-iosched.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c index 2381cf220ba2..7b610e91127e 100644 --- a/block/bfq-iosched.c +++ b/block/bfq-iosched.c @@ -6717,6 +6717,12 @@ static struct bfq_queue *bfq_init_rq(struct request *rq) bfqq = bfq_get_bfqq_handle_split(bfqd, bic, bio, true, is_sync, NULL); + if (unlikely(bfqq == &bfqd->oom_bfqq)) + bfqq_already_existing = true; + } else + bfqq_already_existing = true; + + if (!bfqq_already_existing) { bfqq->waker_bfqq = old_bfqq->waker_bfqq; bfqq->tentative_waker_bfqq = NULL; @@ -6730,8 +6736,7 @@ static struct bfq_queue *bfq_init_rq(struct request *rq) if (bfqq->waker_bfqq) hlist_add_head(&bfqq->woken_list_node, &bfqq->waker_bfqq->woken_list); - } else - bfqq_already_existing = true; + } } } |