blk_end_request: changing i2o_block (take 4)
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>
This commit is contained in:
parent
e935eb9dba
commit
1381b7e82a
|
@ -412,13 +412,13 @@ static void i2o_block_delayed_request_fn(struct work_struct *work)
|
||||||
/**
|
/**
|
||||||
* i2o_block_end_request - Post-processing of completed commands
|
* i2o_block_end_request - Post-processing of completed commands
|
||||||
* @req: request which should be completed
|
* @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
|
* @nr_bytes: number of bytes to complete
|
||||||
*
|
*
|
||||||
* Mark the request as complete. The lock must not be held when entering.
|
* 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)
|
int nr_bytes)
|
||||||
{
|
{
|
||||||
struct i2o_block_request *ireq = req->special;
|
struct i2o_block_request *ireq = req->special;
|
||||||
|
@ -426,22 +426,18 @@ static void i2o_block_end_request(struct request *req, int uptodate,
|
||||||
struct request_queue *q = req->q;
|
struct request_queue *q = req->q;
|
||||||
unsigned long flags;
|
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);
|
int leftover = (req->hard_nr_sectors << KERNEL_SECTOR_SHIFT);
|
||||||
|
|
||||||
if (blk_pc_request(req))
|
if (blk_pc_request(req))
|
||||||
leftover = req->data_len;
|
leftover = req->data_len;
|
||||||
|
|
||||||
if (end_io_error(uptodate))
|
if (error)
|
||||||
end_that_request_chunk(req, 0, leftover);
|
blk_end_request(req, -EIO, leftover);
|
||||||
}
|
}
|
||||||
|
|
||||||
add_disk_randomness(req->rq_disk);
|
|
||||||
|
|
||||||
spin_lock_irqsave(q->queue_lock, flags);
|
spin_lock_irqsave(q->queue_lock, flags);
|
||||||
|
|
||||||
end_that_request_last(req, uptodate);
|
|
||||||
|
|
||||||
if (likely(dev)) {
|
if (likely(dev)) {
|
||||||
dev->open_queue_depth--;
|
dev->open_queue_depth--;
|
||||||
list_del(&ireq->queue);
|
list_del(&ireq->queue);
|
||||||
|
@ -468,7 +464,7 @@ static int i2o_block_reply(struct i2o_controller *c, u32 m,
|
||||||
struct i2o_message *msg)
|
struct i2o_message *msg)
|
||||||
{
|
{
|
||||||
struct request *req;
|
struct request *req;
|
||||||
int uptodate = 1;
|
int error = 0;
|
||||||
|
|
||||||
req = i2o_cntxt_list_get(c, le32_to_cpu(msg->u.s.tcntxt));
|
req = i2o_cntxt_list_get(c, le32_to_cpu(msg->u.s.tcntxt));
|
||||||
if (unlikely(!req)) {
|
if (unlikely(!req)) {
|
||||||
|
@ -501,10 +497,10 @@ static int i2o_block_reply(struct i2o_controller *c, u32 m,
|
||||||
|
|
||||||
req->errors++;
|
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;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue