提交 1c5093ba 编写于 作者: K Kiyoshi Ueda 提交者: Jens Axboe

blk_end_request: changing floppy (take 4)

This patch converts floppy to use blk_end_request interfaces.
Related 'uptodate' arguments are converted to 'error'.

As a result, the interface of internal function, floppy_end_request(),
is changed.
Signed-off-by: NKiyoshi Ueda <k-ueda@ct.jp.nec.com>
Signed-off-by: NJun'ichi Nomura <j-nomura@ce.jp.nec.com>
Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
上级 0156c254
...@@ -2287,21 +2287,19 @@ static int do_format(int drive, struct format_descr *tmp_format_req) ...@@ -2287,21 +2287,19 @@ static int do_format(int drive, struct format_descr *tmp_format_req)
* ============================= * =============================
*/ */
static void floppy_end_request(struct request *req, int uptodate) static void floppy_end_request(struct request *req, int error)
{ {
unsigned int nr_sectors = current_count_sectors; unsigned int nr_sectors = current_count_sectors;
unsigned int drive = (unsigned long)req->rq_disk->private_data;
/* current_count_sectors can be zero if transfer failed */ /* current_count_sectors can be zero if transfer failed */
if (!uptodate) if (error)
nr_sectors = req->current_nr_sectors; nr_sectors = req->current_nr_sectors;
if (end_that_request_first(req, uptodate, nr_sectors)) if (__blk_end_request(req, error, nr_sectors << 9))
return; return;
add_disk_randomness(req->rq_disk);
floppy_off((long)req->rq_disk->private_data);
blkdev_dequeue_request(req);
end_that_request_last(req, uptodate);
/* We're done with the request */ /* We're done with the request */
floppy_off(drive);
current_req = NULL; current_req = NULL;
} }
...@@ -2332,7 +2330,7 @@ static void request_done(int uptodate) ...@@ -2332,7 +2330,7 @@ static void request_done(int uptodate)
/* unlock chained buffers */ /* unlock chained buffers */
spin_lock_irqsave(q->queue_lock, flags); spin_lock_irqsave(q->queue_lock, flags);
floppy_end_request(req, 1); floppy_end_request(req, 0);
spin_unlock_irqrestore(q->queue_lock, flags); spin_unlock_irqrestore(q->queue_lock, flags);
} else { } else {
if (rq_data_dir(req) == WRITE) { if (rq_data_dir(req) == WRITE) {
...@@ -2346,7 +2344,7 @@ static void request_done(int uptodate) ...@@ -2346,7 +2344,7 @@ static void request_done(int uptodate)
DRWE->last_error_generation = DRS->generation; DRWE->last_error_generation = DRS->generation;
} }
spin_lock_irqsave(q->queue_lock, flags); spin_lock_irqsave(q->queue_lock, flags);
floppy_end_request(req, 0); floppy_end_request(req, -EIO);
spin_unlock_irqrestore(q->queue_lock, flags); spin_unlock_irqrestore(q->queue_lock, flags);
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册