diff options
author | Kiyoshi Ueda <k-ueda@ct.jp.nec.com> | 2007-12-11 17:47:52 -0500 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2008-01-28 10:36:48 +0100 |
commit | e935eb9dba66ce2533d06e459cf5bbfc17c9318b (patch) | |
tree | 34d2754f6d22f8fdbdef56ad07433800a79cd6ee /drivers/cdrom | |
parent | f530f036378421fb0b59bb829a8097a50bca79e2 (diff) | |
download | linux-stable-e935eb9dba66ce2533d06e459cf5bbfc17c9318b.tar.gz linux-stable-e935eb9dba66ce2533d06e459cf5bbfc17c9318b.tar.bz2 linux-stable-e935eb9dba66ce2533d06e459cf5bbfc17c9318b.zip |
blk_end_request: changing viocd (take 4)
This patch converts viocd to use blk_end_request interfaces.
Related 'uptodate' arguments are converted to 'error'.
As a result, the interface of internal function, viocd_end_request(),
is changed.
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Kiyoshi Ueda <k-ueda@ct.jp.nec.com>
Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'drivers/cdrom')
-rw-r--r-- | drivers/cdrom/viocd.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/drivers/cdrom/viocd.c b/drivers/cdrom/viocd.c index d8bb44b98a6a..8473b9f1da96 100644 --- a/drivers/cdrom/viocd.c +++ b/drivers/cdrom/viocd.c @@ -289,7 +289,7 @@ static int send_request(struct request *req) return 0; } -static void viocd_end_request(struct request *req, int uptodate) +static void viocd_end_request(struct request *req, int error) { int nsectors = req->hard_nr_sectors; @@ -302,11 +302,8 @@ static void viocd_end_request(struct request *req, int uptodate) if (!nsectors) nsectors = 1; - if (end_that_request_first(req, uptodate, nsectors)) + if (__blk_end_request(req, error, nsectors << 9)) BUG(); - add_disk_randomness(req->rq_disk); - blkdev_dequeue_request(req); - end_that_request_last(req, uptodate); } static int rwreq; @@ -317,11 +314,11 @@ static void do_viocd_request(struct request_queue *q) while ((rwreq == 0) && ((req = elv_next_request(q)) != NULL)) { if (!blk_fs_request(req)) - viocd_end_request(req, 0); + viocd_end_request(req, -EIO); else if (send_request(req) < 0) { printk(VIOCD_KERN_WARNING "unable to send message to OS/400!"); - viocd_end_request(req, 0); + viocd_end_request(req, -EIO); } else rwreq++; } @@ -532,9 +529,9 @@ return_complete: "with rc %d:0x%04X: %s\n", req, event->xRc, bevent->sub_result, err->msg); - viocd_end_request(req, 0); + viocd_end_request(req, -EIO); } else - viocd_end_request(req, 1); + viocd_end_request(req, 0); /* restart handling of incoming requests */ spin_unlock_irqrestore(&viocd_reqlock, flags); |