diff options
Diffstat (limited to 'drivers/ide/ide-eh.c')
-rw-r--r-- | drivers/ide/ide-eh.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/ide/ide-eh.c b/drivers/ide/ide-eh.c index e9abf2c3c335..c0aa93fb7a60 100644 --- a/drivers/ide/ide-eh.c +++ b/drivers/ide/ide-eh.c | |||
@@ -122,7 +122,7 @@ ide_startstop_t ide_error(ide_drive_t *drive, const char *msg, u8 stat) | |||
122 | return ide_stopped; | 122 | return ide_stopped; |
123 | 123 | ||
124 | /* retry only "normal" I/O: */ | 124 | /* retry only "normal" I/O: */ |
125 | if (!blk_fs_request(rq)) { | 125 | if (rq->cmd_type != REQ_TYPE_FS) { |
126 | if (rq->cmd_type == REQ_TYPE_ATA_TASKFILE) { | 126 | if (rq->cmd_type == REQ_TYPE_ATA_TASKFILE) { |
127 | struct ide_cmd *cmd = rq->special; | 127 | struct ide_cmd *cmd = rq->special; |
128 | 128 | ||
@@ -146,7 +146,8 @@ static inline void ide_complete_drive_reset(ide_drive_t *drive, int err) | |||
146 | { | 146 | { |
147 | struct request *rq = drive->hwif->rq; | 147 | struct request *rq = drive->hwif->rq; |
148 | 148 | ||
149 | if (rq && blk_special_request(rq) && rq->cmd[0] == REQ_DRIVE_RESET) { | 149 | if (rq && rq->cmd_type == REQ_TYPE_SPECIAL && |
150 | rq->cmd[0] == REQ_DRIVE_RESET) { | ||
150 | if (err <= 0 && rq->errors == 0) | 151 | if (err <= 0 && rq->errors == 0) |
151 | rq->errors = -EIO; | 152 | rq->errors = -EIO; |
152 | ide_complete_rq(drive, err ? err : 0, blk_rq_bytes(rq)); | 153 | ide_complete_rq(drive, err ? err : 0, blk_rq_bytes(rq)); |