ide-cd: fix REQ_QUIET tests in cdrom_decode_status
Original patch (dfa4411cc3
) was buggy.
This is a more proper fix which introduces blk_rq_quiet() macro
alleviating the need for dumb, too short caching variables.
Thanks to Helge Deller and Bart for debugging this.
Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Reported-and-tested-by: Helge Deller <deller@gmx.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
b930f964cf
commit
96c1674397
|
@ -312,7 +312,6 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat)
|
|||
ide_hwif_t *hwif = drive->hwif;
|
||||
struct request *rq = hwif->rq;
|
||||
int err, sense_key, do_end_request = 0;
|
||||
u8 quiet = rq->cmd_flags & REQ_QUIET;
|
||||
|
||||
/* get the IDE error register */
|
||||
err = ide_read_error(drive);
|
||||
|
@ -347,7 +346,7 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat)
|
|||
} else {
|
||||
cdrom_saw_media_change(drive);
|
||||
|
||||
if (blk_fs_request(rq) && !quiet)
|
||||
if (blk_fs_request(rq) && !blk_rq_quiet(rq))
|
||||
printk(KERN_ERR PFX "%s: tray open\n",
|
||||
drive->name);
|
||||
}
|
||||
|
@ -382,7 +381,7 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat)
|
|||
* No point in retrying after an illegal request or data
|
||||
* protect error.
|
||||
*/
|
||||
if (!quiet)
|
||||
if (!blk_rq_quiet(rq))
|
||||
ide_dump_status(drive, "command error", stat);
|
||||
do_end_request = 1;
|
||||
break;
|
||||
|
@ -391,14 +390,14 @@ static int cdrom_decode_status(ide_drive_t *drive, u8 stat)
|
|||
* No point in re-trying a zillion times on a bad sector.
|
||||
* If we got here the error is not correctable.
|
||||
*/
|
||||
if (!quiet)
|
||||
if (!blk_rq_quiet(rq))
|
||||
ide_dump_status(drive, "media error "
|
||||
"(bad sector)", stat);
|
||||
do_end_request = 1;
|
||||
break;
|
||||
case BLANK_CHECK:
|
||||
/* disk appears blank? */
|
||||
if (!quiet)
|
||||
if (!blk_rq_quiet(rq))
|
||||
ide_dump_status(drive, "media error (blank)",
|
||||
stat);
|
||||
do_end_request = 1;
|
||||
|
|
|
@ -598,6 +598,7 @@ enum {
|
|||
blk_failfast_transport(rq) || \
|
||||
blk_failfast_driver(rq))
|
||||
#define blk_rq_started(rq) ((rq)->cmd_flags & REQ_STARTED)
|
||||
#define blk_rq_quiet(rq) ((rq)->cmd_flags & REQ_QUIET)
|
||||
|
||||
#define blk_account_rq(rq) (blk_rq_started(rq) && (blk_fs_request(rq) || blk_discard_rq(rq)))
|
||||
|
||||
|
|
Loading…
Reference in New Issue