diff --git a/[refs] b/[refs] index 35cca7298f9e..379318a121b8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 541cecac534ea0df95fbc76b0a3091e91b101895 +refs/heads/master: fd782a4a99d2d3e818b9465c427b10f7f027d7da diff --git a/trunk/drivers/block/ll_rw_blk.c b/trunk/drivers/block/ll_rw_blk.c index 1197462bb6ba..692a5fced76e 100644 --- a/trunk/drivers/block/ll_rw_blk.c +++ b/trunk/drivers/block/ll_rw_blk.c @@ -1917,10 +1917,9 @@ static struct request *get_request(request_queue_t *q, int rw, struct bio *bio, * limit of requests, otherwise we could have thousands of requests * allocated with any setting of ->nr_requests */ - if (rl->count[rw] >= (3 * q->nr_requests / 2)) { - spin_unlock_irq(q->queue_lock); + if (rl->count[rw] >= (3 * q->nr_requests / 2)) goto out; - } + rl->count[rw]++; rl->starved[rw] = 0; if (rl->count[rw] >= queue_congestion_on_threshold(q))