forked from Minki/linux
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: 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
0156c2547e
commit
1c5093ba03
@ -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)
|
|||||||
|
|
||||||
/* 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)
|
|||||||
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user