diff options
author | Tejun Heo <tj@kernel.org> | 2012-06-04 20:40:58 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2012-06-25 11:53:51 +0200 |
commit | 8a5ecdd42862bf87ceab00bf2a15d7eabf58c02d (patch) | |
tree | 36ff209f0655c5da9cfb7c5c6f6e9b9786841201 /include/linux/blkdev.h | |
parent | b1208b56f31408f7d8381ff5d08e970aa5ee761c (diff) | |
download | linux-8a5ecdd42862bf87ceab00bf2a15d7eabf58c02d.tar.gz linux-8a5ecdd42862bf87ceab00bf2a15d7eabf58c02d.tar.bz2 linux-8a5ecdd42862bf87ceab00bf2a15d7eabf58c02d.zip |
block: add q->nr_rqs[] and move q->rq.elvpriv to q->nr_rqs_elvpriv
Add q->nr_rqs[] which currently behaves the same as q->rq.count[] and
move q->rq.elvpriv to q->nr_rqs_elvpriv. blk_drain_queue() is updated
to use q->nr_rqs[] instead of q->rq.count[].
These counters separates queue-wide request statistics from the
request list and allow implementation of per-queue request allocation.
While at it, properly indent fields of struct request_list.
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include/linux/blkdev.h')
-rw-r--r-- | include/linux/blkdev.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 07954b05b86c..7e44ed93f84b 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -51,11 +51,10 @@ struct request_list { * count[], starved[], and wait[] are indexed by * BLK_RW_SYNC/BLK_RW_ASYNC */ - int count[2]; - int starved[2]; - int elvpriv; - mempool_t *rq_pool; - wait_queue_head_t wait[2]; + int count[2]; + int starved[2]; + mempool_t *rq_pool; + wait_queue_head_t wait[2]; }; /* @@ -282,6 +281,8 @@ struct request_queue { struct list_head queue_head; struct request *last_merge; struct elevator_queue *elevator; + int nr_rqs[2]; /* # allocated [a]sync rqs */ + int nr_rqs_elvpriv; /* # allocated rqs w/ elvpriv */ /* * the queue request freelist, one for reads and one for writes |