Skip to content

Commit

Permalink
blk_end_request: changing i2o_block (take 4)
Browse files Browse the repository at this point in the history
This patch converts i2o_block to use blk_end_request interfaces.
Related 'uptodate' arguments are converted to 'error'.

As a result, the interface of internal function, i2o_block_end_request(),
is changed.

Cc: Markus Lidel <Markus.Lidel@shadowconnect.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>
  • Loading branch information
Kiyoshi Ueda authored and Jens Axboe committed Jan 28, 2008
1 parent e935eb9 commit 1381b7e
Showing 1 changed file with 8 additions and 12 deletions.
20 changes: 8 additions & 12 deletions drivers/message/i2o/i2o_block.c
Original file line number Diff line number Diff line change
Expand Up @@ -412,36 +412,32 @@ static void i2o_block_delayed_request_fn(struct work_struct *work)
/**
* i2o_block_end_request - Post-processing of completed commands
* @req: request which should be completed
* @uptodate: 1 for success, 0 for I/O error, < 0 for specific error
* @error: 0 for success, < 0 for error
* @nr_bytes: number of bytes to complete
*
* Mark the request as complete. The lock must not be held when entering.
*
*/
static void i2o_block_end_request(struct request *req, int uptodate,
static void i2o_block_end_request(struct request *req, int error,
int nr_bytes)
{
struct i2o_block_request *ireq = req->special;
struct i2o_block_device *dev = ireq->i2o_blk_dev;
struct request_queue *q = req->q;
unsigned long flags;

if (end_that_request_chunk(req, uptodate, nr_bytes)) {
if (blk_end_request(req, error, nr_bytes)) {
int leftover = (req->hard_nr_sectors << KERNEL_SECTOR_SHIFT);

if (blk_pc_request(req))
leftover = req->data_len;

if (end_io_error(uptodate))
end_that_request_chunk(req, 0, leftover);
if (error)
blk_end_request(req, -EIO, leftover);
}

add_disk_randomness(req->rq_disk);

spin_lock_irqsave(q->queue_lock, flags);

end_that_request_last(req, uptodate);

if (likely(dev)) {
dev->open_queue_depth--;
list_del(&ireq->queue);
Expand All @@ -468,7 +464,7 @@ static int i2o_block_reply(struct i2o_controller *c, u32 m,
struct i2o_message *msg)
{
struct request *req;
int uptodate = 1;
int error = 0;

req = i2o_cntxt_list_get(c, le32_to_cpu(msg->u.s.tcntxt));
if (unlikely(!req)) {
Expand Down Expand Up @@ -501,10 +497,10 @@ static int i2o_block_reply(struct i2o_controller *c, u32 m,

req->errors++;

uptodate = 0;
error = -EIO;
}

i2o_block_end_request(req, uptodate, le32_to_cpu(msg->body[1]));
i2o_block_end_request(req, error, le32_to_cpu(msg->body[1]));

return 1;
};
Expand Down

0 comments on commit 1381b7e

Please sign in to comment.