| From stable-bounces@linux.kernel.org Wed Nov 15 01:27:12 2006 |
| From: maks@sternwelten.at |
| Date: Wed, 15 Nov 2006 00:59:03 GMT |
| Message-Id: <200611150059.kAF0x3XU009627@hera.kernel.org> |
| To: stable@kernel.org |
| Subject: cpqarray: fix iostat |
| |
| From: Jens Axboe <jens.axboe@oracle.com> |
| |
| cpqarray needs to call disk_stat_add() for iostat to work. |
| |
| Signed-off-by: Jens Axboe <jens.axboe@oracle.com> |
| Signed-off-by: Linus Torvalds <torvalds@osdl.org> |
| Signed-off-by: Chris Wright <chrisw@sous-sol.org> |
| --- |
| |
| drivers/block/cpqarray.c | 15 +++++++++++---- |
| 1 file changed, 11 insertions(+), 4 deletions(-) |
| |
| --- linux-2.6.18.2.orig/drivers/block/cpqarray.c |
| +++ linux-2.6.18.2/drivers/block/cpqarray.c |
| @@ -1000,6 +1000,7 @@ static inline void complete_buffers(stru |
| */ |
| static inline void complete_command(cmdlist_t *cmd, int timeout) |
| { |
| + struct request *rq = cmd->rq; |
| int ok=1; |
| int i, ddir; |
| |
| @@ -1031,12 +1032,18 @@ static inline void complete_command(cmdl |
| pci_unmap_page(hba[cmd->ctlr]->pci_dev, cmd->req.sg[i].addr, |
| cmd->req.sg[i].size, ddir); |
| |
| - complete_buffers(cmd->rq->bio, ok); |
| + complete_buffers(rq->bio, ok); |
| |
| - add_disk_randomness(cmd->rq->rq_disk); |
| + if (blk_fs_request(rq)) { |
| + const int rw = rq_data_dir(rq); |
| |
| - DBGPX(printk("Done with %p\n", cmd->rq);); |
| - end_that_request_last(cmd->rq, ok ? 1 : -EIO); |
| + disk_stat_add(rq->rq_disk, sectors[rw], rq->nr_sectors); |
| + } |
| + |
| + add_disk_randomness(rq->rq_disk); |
| + |
| + DBGPX(printk("Done with %p\n", rq);); |
| + end_that_request_last(rq, ok ? 1 : -EIO); |
| } |
| |
| /* |