diff options
| author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2009-03-27 07:46:43 -0400 |
|---|---|---|
| committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2009-03-27 07:46:43 -0400 |
| commit | 89f78b3261f7e331e41753ea2459fbb9b60a6f7a (patch) | |
| tree | f294393d4d4a1db653c5f0ce7b5504ff589e4a3b | |
| parent | 6902a5331256e1b9f4cef95a1e3622252113b260 (diff) | |
ide: move rq->errors quirk out from ide_end_request()
Move rq->errors quirk out from ide_end_request() to its call sites.
There should be no functional changes caused by this patch.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
| -rw-r--r-- | drivers/ide/ide-atapi.c | 7 | ||||
| -rw-r--r-- | drivers/ide/ide-cd.c | 3 | ||||
| -rw-r--r-- | drivers/ide/ide-disk.c | 2 | ||||
| -rw-r--r-- | drivers/ide/ide-eh.c | 5 | ||||
| -rw-r--r-- | drivers/ide/ide-floppy.c | 2 | ||||
| -rw-r--r-- | drivers/ide/ide-io.c | 5 | ||||
| -rw-r--r-- | drivers/ide/ide-tape.c | 2 |
7 files changed, 21 insertions, 5 deletions
diff --git a/drivers/ide/ide-atapi.c b/drivers/ide/ide-atapi.c index 5d57af29c4c8..5504a84e9bd6 100644 --- a/drivers/ide/ide-atapi.c +++ b/drivers/ide/ide-atapi.c | |||
| @@ -405,8 +405,13 @@ static ide_startstop_t ide_pc_intr(ide_drive_t *drive) | |||
| 405 | if (blk_special_request(rq)) { | 405 | if (blk_special_request(rq)) { |
| 406 | rq->errors = 0; | 406 | rq->errors = 0; |
| 407 | ide_complete_rq(drive, 0); | 407 | ide_complete_rq(drive, 0); |
| 408 | } else | 408 | } else { |
| 409 | if (blk_fs_request(rq) == 0 && uptodate <= 0) { | ||
| 410 | if (rq->errors == 0) | ||
| 411 | rq->errors = -EIO; | ||
| 412 | } | ||
| 409 | ide_end_request(drive, uptodate, 0); | 413 | ide_end_request(drive, uptodate, 0); |
| 414 | } | ||
| 410 | 415 | ||
| 411 | return ide_stopped; | 416 | return ide_stopped; |
| 412 | } | 417 | } |
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c index bbbebcbb1e3d..e4fa807fdcfa 100644 --- a/drivers/ide/ide-cd.c +++ b/drivers/ide/ide-cd.c | |||
| @@ -295,6 +295,9 @@ static void cdrom_end_request(ide_drive_t *drive, int uptodate) | |||
| 295 | ide_debug_log(IDE_DBG_FUNC, "uptodate: 0x%x, nsectors: %d", | 295 | ide_debug_log(IDE_DBG_FUNC, "uptodate: 0x%x, nsectors: %d", |
| 296 | uptodate, nsectors); | 296 | uptodate, nsectors); |
| 297 | 297 | ||
| 298 | if (blk_fs_request(rq) == 0 && uptodate <= 0 && rq->errors == 0) | ||
| 299 | rq->errors = -EIO; | ||
| 300 | |||
| 298 | ide_end_request(drive, uptodate, nsectors); | 301 | ide_end_request(drive, uptodate, nsectors); |
| 299 | } | 302 | } |
| 300 | 303 | ||
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c index dae9d988de10..ad9a3f54d21d 100644 --- a/drivers/ide/ide-disk.c +++ b/drivers/ide/ide-disk.c | |||
| @@ -184,6 +184,8 @@ static ide_startstop_t ide_do_rw_disk(ide_drive_t *drive, struct request *rq, | |||
| 184 | 184 | ||
| 185 | if (!blk_fs_request(rq)) { | 185 | if (!blk_fs_request(rq)) { |
| 186 | blk_dump_rq_flags(rq, "ide_do_rw_disk - bad command"); | 186 | blk_dump_rq_flags(rq, "ide_do_rw_disk - bad command"); |
| 187 | if (rq->errors == 0) | ||
| 188 | rq->errors = -EIO; | ||
| 187 | ide_end_request(drive, 0, 0); | 189 | ide_end_request(drive, 0, 0); |
| 188 | return ide_stopped; | 190 | return ide_stopped; |
| 189 | } | 191 | } |
diff --git a/drivers/ide/ide-eh.c b/drivers/ide/ide-eh.c index d1385d332e94..6ad419414f95 100644 --- a/drivers/ide/ide-eh.c +++ b/drivers/ide/ide-eh.c | |||
| @@ -146,8 +146,11 @@ 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 && blk_special_request(rq) && rq->cmd[0] == REQ_DRIVE_RESET) { |
| 150 | if (err <= 0 && rq->errors == 0) | ||
| 151 | rq->errors = -EIO; | ||
| 150 | ide_end_request(drive, err ? err : 1, 0); | 152 | ide_end_request(drive, err ? err : 1, 0); |
| 153 | } | ||
| 151 | } | 154 | } |
| 152 | 155 | ||
| 153 | /* needed below */ | 156 | /* needed below */ |
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c index 407e4914dfd1..572aa9696dad 100644 --- a/drivers/ide/ide-floppy.c +++ b/drivers/ide/ide-floppy.c | |||
| @@ -298,6 +298,8 @@ static ide_startstop_t ide_floppy_do_request(ide_drive_t *drive, | |||
| 298 | return idefloppy_issue_pc(drive, pc); | 298 | return idefloppy_issue_pc(drive, pc); |
| 299 | out_end: | 299 | out_end: |
| 300 | drive->failed_pc = NULL; | 300 | drive->failed_pc = NULL; |
| 301 | if (blk_fs_request(rq) == 0 && rq->errors == 0) | ||
| 302 | rq->errors = -EIO; | ||
| 301 | ide_end_request(drive, 0, 0); | 303 | ide_end_request(drive, 0, 0); |
| 302 | return ide_stopped; | 304 | return ide_stopped; |
| 303 | } | 305 | } |
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c index 4cc2bb13f1d6..28ac463dde1c 100644 --- a/drivers/ide/ide-io.c +++ b/drivers/ide/ide-io.c | |||
| @@ -102,9 +102,6 @@ int ide_end_request (ide_drive_t *drive, int uptodate, int nr_sectors) | |||
| 102 | if (blk_noretry_request(rq) && uptodate <= 0) | 102 | if (blk_noretry_request(rq) && uptodate <= 0) |
| 103 | nr_bytes = rq->hard_nr_sectors << 9; | 103 | nr_bytes = rq->hard_nr_sectors << 9; |
| 104 | 104 | ||
| 105 | if (blk_fs_request(rq) == 0 && uptodate <= 0 && rq->errors == 0) | ||
| 106 | rq->errors = -EIO; | ||
| 107 | |||
| 108 | if (uptodate <= 0) | 105 | if (uptodate <= 0) |
| 109 | error = uptodate ? uptodate : -EIO; | 106 | error = uptodate ? uptodate : -EIO; |
| 110 | 107 | ||
| @@ -169,6 +166,8 @@ void ide_kill_rq(ide_drive_t *drive, struct request *rq) | |||
| 169 | } else { | 166 | } else { |
| 170 | if (media == ide_tape) | 167 | if (media == ide_tape) |
| 171 | rq->errors = IDE_DRV_ERROR_GENERAL; | 168 | rq->errors = IDE_DRV_ERROR_GENERAL; |
| 169 | else if (blk_fs_request(rq) == 0 && rq->errors == 0) | ||
| 170 | rq->errors = -EIO; | ||
| 172 | ide_end_request(drive, 0, 0); | 171 | ide_end_request(drive, 0, 0); |
| 173 | } | 172 | } |
| 174 | } | 173 | } |
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index 3bfcd7290ce0..94f6fb8c147a 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c | |||
| @@ -760,6 +760,8 @@ static ide_startstop_t idetape_do_request(ide_drive_t *drive, | |||
| 760 | /* We do not support buffer cache originated requests. */ | 760 | /* We do not support buffer cache originated requests. */ |
| 761 | printk(KERN_NOTICE "ide-tape: %s: Unsupported request in " | 761 | printk(KERN_NOTICE "ide-tape: %s: Unsupported request in " |
| 762 | "request queue (%d)\n", drive->name, rq->cmd_type); | 762 | "request queue (%d)\n", drive->name, rq->cmd_type); |
| 763 | if (blk_fs_request(rq) == 0 && rq->errors == 0) | ||
| 764 | rq->errors = -EIO; | ||
| 763 | ide_end_request(drive, 0, 0); | 765 | ide_end_request(drive, 0, 0); |
| 764 | return ide_stopped; | 766 | return ide_stopped; |
| 765 | } | 767 | } |
