diff options
Diffstat (limited to 'drivers/ide/ide-tape.c')
-rw-r--r-- | drivers/ide/ide-tape.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index aadf53cfac6f..8324dfa78a3f 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c | |||
@@ -695,7 +695,7 @@ static ide_startstop_t idetape_media_access_finished(ide_drive_t *drive) | |||
695 | printk(KERN_ERR "ide-tape: %s: I/O error, ", | 695 | printk(KERN_ERR "ide-tape: %s: I/O error, ", |
696 | tape->name); | 696 | tape->name); |
697 | /* Retry operation */ | 697 | /* Retry operation */ |
698 | ide_retry_pc(drive, tape->disk); | 698 | ide_retry_pc(drive); |
699 | return ide_stopped; | 699 | return ide_stopped; |
700 | } | 700 | } |
701 | pc->error = 0; | 701 | pc->error = 0; |
@@ -752,7 +752,7 @@ static ide_startstop_t idetape_do_request(ide_drive_t *drive, | |||
752 | (unsigned long long)rq->sector, rq->nr_sectors, | 752 | (unsigned long long)rq->sector, rq->nr_sectors, |
753 | rq->current_nr_sectors); | 753 | rq->current_nr_sectors); |
754 | 754 | ||
755 | if (!blk_special_request(rq)) { | 755 | if (!(blk_special_request(rq) || blk_sense_request(rq))) { |
756 | /* We do not support buffer cache originated requests. */ | 756 | /* We do not support buffer cache originated requests. */ |
757 | printk(KERN_NOTICE "ide-tape: %s: Unsupported request in " | 757 | printk(KERN_NOTICE "ide-tape: %s: Unsupported request in " |
758 | "request queue (%d)\n", drive->name, rq->cmd_type); | 758 | "request queue (%d)\n", drive->name, rq->cmd_type); |
@@ -840,6 +840,9 @@ static ide_startstop_t idetape_do_request(ide_drive_t *drive, | |||
840 | BUG(); | 840 | BUG(); |
841 | 841 | ||
842 | out: | 842 | out: |
843 | /* prepare sense request for this command */ | ||
844 | ide_prep_sense(drive, rq); | ||
845 | |||
843 | memset(&cmd, 0, sizeof(cmd)); | 846 | memset(&cmd, 0, sizeof(cmd)); |
844 | 847 | ||
845 | if (rq_data_dir(rq)) | 848 | if (rq_data_dir(rq)) |