diff options
| author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2009-03-27 07:46:34 -0400 |
|---|---|---|
| committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2009-03-27 07:46:34 -0400 |
| commit | c152cc1a90f9680cefa74d9ff9ce36038081ba72 (patch) | |
| tree | 7932faaf671d8ac20d61a2df2cfe43c7919b0d4f /drivers/ide/ide-tape.c | |
| parent | 5e2040fd0a97888952b37243b5868872bbe0f6ac (diff) | |
ide: use ->end_request only for private device driver requests
* Move IDE{FLOPPY,TAPE}_ERROR_* defines to <linux/ide.h> and rename them
to IDE_DRV_ERROR_*.
* Handle ->end_request special cases for floppy/tape media in ide_kill_rq().
* Call ->end_request only for private device driver requests.
There should be no functional changes caused by this patch.
Acked-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/ide-tape.c')
| -rw-r--r-- | drivers/ide/ide-tape.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index d6555984ee88..e3b4c1c39d37 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c | |||
| @@ -152,11 +152,6 @@ struct idetape_bh { | |||
| 152 | #define IDETAPE_LU_RETENSION_MASK 2 | 152 | #define IDETAPE_LU_RETENSION_MASK 2 |
| 153 | #define IDETAPE_LU_EOT_MASK 4 | 153 | #define IDETAPE_LU_EOT_MASK 4 |
| 154 | 154 | ||
| 155 | /* Error codes returned in rq->errors to the higher part of the driver. */ | ||
| 156 | #define IDETAPE_ERROR_GENERAL 101 | ||
| 157 | #define IDETAPE_ERROR_FILEMARK 102 | ||
| 158 | #define IDETAPE_ERROR_EOD 103 | ||
| 159 | |||
| 160 | /* Structures related to the SELECT SENSE / MODE SENSE packet commands. */ | 155 | /* Structures related to the SELECT SENSE / MODE SENSE packet commands. */ |
| 161 | #define IDETAPE_BLOCK_DESCRIPTOR 0 | 156 | #define IDETAPE_BLOCK_DESCRIPTOR 0 |
| 162 | #define IDETAPE_CAPABILITIES_PAGE 0x2a | 157 | #define IDETAPE_CAPABILITIES_PAGE 0x2a |
| @@ -422,19 +417,19 @@ static void idetape_analyze_error(ide_drive_t *drive, u8 *sense) | |||
| 422 | } | 417 | } |
| 423 | } | 418 | } |
| 424 | if (pc->c[0] == READ_6 && (sense[2] & 0x80)) { | 419 | if (pc->c[0] == READ_6 && (sense[2] & 0x80)) { |
| 425 | pc->error = IDETAPE_ERROR_FILEMARK; | 420 | pc->error = IDE_DRV_ERROR_FILEMARK; |
| 426 | pc->flags |= PC_FLAG_ABORT; | 421 | pc->flags |= PC_FLAG_ABORT; |
| 427 | } | 422 | } |
| 428 | if (pc->c[0] == WRITE_6) { | 423 | if (pc->c[0] == WRITE_6) { |
| 429 | if ((sense[2] & 0x40) || (tape->sense_key == 0xd | 424 | if ((sense[2] & 0x40) || (tape->sense_key == 0xd |
| 430 | && tape->asc == 0x0 && tape->ascq == 0x2)) { | 425 | && tape->asc == 0x0 && tape->ascq == 0x2)) { |
| 431 | pc->error = IDETAPE_ERROR_EOD; | 426 | pc->error = IDE_DRV_ERROR_EOD; |
| 432 | pc->flags |= PC_FLAG_ABORT; | 427 | pc->flags |= PC_FLAG_ABORT; |
| 433 | } | 428 | } |
| 434 | } | 429 | } |
| 435 | if (pc->c[0] == READ_6 || pc->c[0] == WRITE_6) { | 430 | if (pc->c[0] == READ_6 || pc->c[0] == WRITE_6) { |
| 436 | if (tape->sense_key == 8) { | 431 | if (tape->sense_key == 8) { |
| 437 | pc->error = IDETAPE_ERROR_EOD; | 432 | pc->error = IDE_DRV_ERROR_EOD; |
| 438 | pc->flags |= PC_FLAG_ABORT; | 433 | pc->flags |= PC_FLAG_ABORT; |
| 439 | } | 434 | } |
| 440 | if (!(pc->flags & PC_FLAG_ABORT) && | 435 | if (!(pc->flags & PC_FLAG_ABORT) && |
| @@ -474,7 +469,7 @@ static int idetape_end_request(ide_drive_t *drive, int uptodate, int nr_sects) | |||
| 474 | debug_log(DBG_PROCS, "Enter %s\n", __func__); | 469 | debug_log(DBG_PROCS, "Enter %s\n", __func__); |
| 475 | 470 | ||
| 476 | switch (uptodate) { | 471 | switch (uptodate) { |
| 477 | case 0: error = IDETAPE_ERROR_GENERAL; break; | 472 | case 0: error = IDE_DRV_ERROR_GENERAL; break; |
| 478 | case 1: error = 0; break; | 473 | case 1: error = 0; break; |
| 479 | default: error = uptodate; | 474 | default: error = uptodate; |
| 480 | } | 475 | } |
| @@ -669,7 +664,7 @@ static ide_startstop_t idetape_issue_pc(ide_drive_t *drive, | |||
| 669 | tape->ascq); | 664 | tape->ascq); |
| 670 | } | 665 | } |
| 671 | /* Giving up */ | 666 | /* Giving up */ |
| 672 | pc->error = IDETAPE_ERROR_GENERAL; | 667 | pc->error = IDE_DRV_ERROR_GENERAL; |
| 673 | } | 668 | } |
| 674 | drive->failed_pc = NULL; | 669 | drive->failed_pc = NULL; |
| 675 | drive->pc_callback(drive, 0); | 670 | drive->pc_callback(drive, 0); |
| @@ -730,7 +725,7 @@ static ide_startstop_t idetape_media_access_finished(ide_drive_t *drive) | |||
| 730 | } | 725 | } |
| 731 | pc->error = 0; | 726 | pc->error = 0; |
| 732 | } else { | 727 | } else { |
| 733 | pc->error = IDETAPE_ERROR_GENERAL; | 728 | pc->error = IDE_DRV_ERROR_GENERAL; |
| 734 | drive->failed_pc = NULL; | 729 | drive->failed_pc = NULL; |
| 735 | } | 730 | } |
| 736 | drive->pc_callback(drive, 0); | 731 | drive->pc_callback(drive, 0); |
| @@ -1210,7 +1205,7 @@ static int idetape_queue_rw_tail(ide_drive_t *drive, int cmd, int blocks, | |||
| 1210 | 1205 | ||
| 1211 | if (tape->merge_bh) | 1206 | if (tape->merge_bh) |
| 1212 | idetape_init_merge_buffer(tape); | 1207 | idetape_init_merge_buffer(tape); |
| 1213 | if (errors == IDETAPE_ERROR_GENERAL) | 1208 | if (errors == IDE_DRV_ERROR_GENERAL) |
| 1214 | return -EIO; | 1209 | return -EIO; |
| 1215 | return ret; | 1210 | return ret; |
| 1216 | } | 1211 | } |
