From 6fb955970b50a30c465e1e210c76161f85bff795 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Sat, 18 Mar 2006 13:51:29 -0500 Subject: [PATCH] --- yaml --- r: 21112 b: refs/heads/master c: c981ff9f893b9ab229a809f8ad287ae43fc17a64 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/block/ll_rw_blk.c | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 192c19b80041..3d2d725f5f1c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8669aafdb5a46a57366dd1540fc475544071a9c9 +refs/heads/master: c981ff9f893b9ab229a809f8ad287ae43fc17a64 diff --git a/trunk/block/ll_rw_blk.c b/trunk/block/ll_rw_blk.c index 5fac138a5be1..caa8fcf5474b 100644 --- a/trunk/block/ll_rw_blk.c +++ b/trunk/block/ll_rw_blk.c @@ -3614,10 +3614,13 @@ static ssize_t queue_requests_store(struct request_queue *q, const char *page, size_t count) { struct request_list *rl = &q->rq; + unsigned long nr; + int ret = queue_var_store(&nr, page, count); + if (nr < BLKDEV_MIN_RQ) + nr = BLKDEV_MIN_RQ; - int ret = queue_var_store(&q->nr_requests, page, count); - if (q->nr_requests < BLKDEV_MIN_RQ) - q->nr_requests = BLKDEV_MIN_RQ; + spin_lock_irq(q->queue_lock); + q->nr_requests = nr; blk_queue_congestion_threshold(q); if (rl->count[READ] >= queue_congestion_on_threshold(q)) @@ -3643,6 +3646,7 @@ queue_requests_store(struct request_queue *q, const char *page, size_t count) blk_clear_queue_full(q, WRITE); wake_up(&rl->wait[WRITE]); } + spin_unlock_irq(q->queue_lock); return ret; }