blk_end_request: changing ps3disk (take 4)
Kiyoshi Ueda [Tue, 11 Dec 2007 22:44:39 +0000 (17:44 -0500)]
This patch converts ps3disk to use blk_end_request interfaces.
Related 'uptodate' arguments are converted to 'error'.

Cc: Geoff Levand <geoffrey.levand@am.sony.com>
Cc: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
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>

drivers/block/ps3disk.c

index e354bfc..7483f94 100644 (file)
@@ -229,7 +229,7 @@ static irqreturn_t ps3disk_interrupt(int irq, void *data)
        struct ps3_storage_device *dev = data;
        struct ps3disk_private *priv;
        struct request *req;
-       int res, read, uptodate;
+       int res, read, error;
        u64 tag, status;
        unsigned long num_sectors;
        const char *op;
@@ -270,21 +270,17 @@ static irqreturn_t ps3disk_interrupt(int irq, void *data)
        if (status) {
                dev_dbg(&dev->sbd.core, "%s:%u: %s failed 0x%lx\n", __func__,
                        __LINE__, op, status);
-               uptodate = 0;
+               error = -EIO;
        } else {
                dev_dbg(&dev->sbd.core, "%s:%u: %s completed\n", __func__,
                        __LINE__, op);
-               uptodate = 1;
+               error = 0;
                if (read)
                        ps3disk_scatter_gather(dev, req, 0);
        }
 
        spin_lock(&priv->lock);
-       if (!end_that_request_first(req, uptodate, num_sectors)) {
-               add_disk_randomness(req->rq_disk);
-               blkdev_dequeue_request(req);
-               end_that_request_last(req, uptodate);
-       }
+       __blk_end_request(req, error, num_sectors << 9);
        priv->req = NULL;
        ps3disk_do_request(dev, priv->queue);
        spin_unlock(&priv->lock);