diff options
Diffstat (limited to 'drivers/ide/ide-cd.c')
-rw-r--r-- | drivers/ide/ide-cd.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c index e4fa807fdcfa..2f698c6e913f 100644 --- a/drivers/ide/ide-cd.c +++ b/drivers/ide/ide-cd.c | |||
@@ -298,7 +298,7 @@ static void cdrom_end_request(ide_drive_t *drive, int uptodate) | |||
298 | if (blk_fs_request(rq) == 0 && uptodate <= 0 && rq->errors == 0) | 298 | if (blk_fs_request(rq) == 0 && uptodate <= 0 && rq->errors == 0) |
299 | rq->errors = -EIO; | 299 | rq->errors = -EIO; |
300 | 300 | ||
301 | ide_end_request(drive, uptodate, nsectors); | 301 | ide_complete_rq(drive, uptodate ? 0 : -EIO, nsectors << 9); |
302 | } | 302 | } |
303 | 303 | ||
304 | static void ide_dump_status_no_sense(ide_drive_t *drive, const char *msg, u8 st) | 304 | static void ide_dump_status_no_sense(ide_drive_t *drive, const char *msg, u8 st) |
@@ -793,10 +793,11 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive) | |||
793 | if (dma_error) | 793 | if (dma_error) |
794 | return ide_error(drive, "dma error", stat); | 794 | return ide_error(drive, "dma error", stat); |
795 | if (blk_fs_request(rq)) { | 795 | if (blk_fs_request(rq)) { |
796 | ide_end_request(drive, 1, rq->nr_sectors); | 796 | ide_complete_rq(drive, 0, rq->nr_sectors |
797 | ? (rq->nr_sectors << 9) : ide_rq_bytes(rq)); | ||
797 | return ide_stopped; | 798 | return ide_stopped; |
798 | } else if (rq->cmd_type == REQ_TYPE_ATA_PC && !rq->bio) { | 799 | } else if (rq->cmd_type == REQ_TYPE_ATA_PC && !rq->bio) { |
799 | ide_end_request(drive, 1, 1); | 800 | ide_complete_rq(drive, 0, 512); |
800 | return ide_stopped; | 801 | return ide_stopped; |
801 | } | 802 | } |
802 | goto end_request; | 803 | goto end_request; |