--- linux/drivers/block/ll_rw_blk.c~ 2004-03-02 08:38:19.113498832 +0100 +++ linux/drivers/block/ll_rw_blk.c 2004-03-02 08:38:00.279519391 +0100 @@ -1678,7 +1678,7 @@ if ((bh = req->bh) != NULL) { nsect = bh->b_size >> 9; blk_finished_io(nsect); - blk_finished_sectors(req, nsect); + blk_finished_sectors(req->q, nsect); req->bh = bh->b_reqnext; bh->b_reqnext = NULL; bh->b_end_io(bh, uptodate); --- linux/drivers/scsi/scsi_lib.c~ 2004-03-02 08:38:25.946765736 +0100 +++ linux/drivers/scsi/scsi_lib.c 2004-03-02 08:38:44.712752438 +0100 @@ -382,7 +382,7 @@ if ((bh = req->bh) != NULL) { nsect = bh->b_size >> 9; blk_finished_io(nsect); - blk_finished_sectors(req, nsect); + blk_finished_sectors(q, nsect); req->bh = bh->b_reqnext; bh->b_reqnext = NULL; sectors -= nsect; --- linux/include/linux/blkdev.h~ 2004-03-02 08:36:35.198646801 +0100 +++ linux/include/linux/blkdev.h 2004-03-02 08:37:55.811998675 +0100 @@ -357,9 +357,8 @@ } } -static inline void blk_finished_sectors(struct request *rq, int count) +static inline void blk_finished_sectors(request_queue_t *q, int count) { - request_queue_t *q = rq->q; if (q && q->can_throttle) { atomic_sub(count, &q->nr_sectors);