From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: linux-ide@vger.kernel.org
Cc: Borislav Petkov <petkovbb@gmail.com>,
Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>,
linux-kernel@vger.kernel.org
Subject: [PATCH 3/5] ide-cd: convert cdrom_decode_status() to use switch statements
Date: Fri, 03 Apr 2009 21:58:10 +0200 [thread overview]
Message-ID: <20090403195810.31438.66965.sendpatchset@localhost.localdomain> (raw)
In-Reply-To: <20090403195757.31438.16866.sendpatchset@localhost.localdomain>
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Subject: [PATCH] ide-cd: convert cdrom_decode_status() to use switch statements
Based on earlier work by Borislav Petkov.
Convert cdrom_decode_status() to use switch statements in
preparation to unify handling of fs and pc requests.
While at it:
- remove superfluous comments and do minor CodingStyle fixups
There should be no functional changes caused by this patch.
Cc: Borislav Petkov <petkovbb@googlemail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/ide/ide-cd.c | 57 ++++++++++++++++++++++++++++-----------------------
1 file changed, 32 insertions(+), 25 deletions(-)
Index: b/drivers/ide/ide-cd.c
===================================================================
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -339,15 +339,14 @@ static int cdrom_decode_status(ide_drive
if (blk_pc_request(rq) && !rq->errors)
rq->errors = SAM_STAT_CHECK_CONDITION;
- /* check for tray open */
- if (sense_key == NOT_READY) {
+ switch (sense_key) {
+ case NOT_READY:
cdrom_saw_media_change(drive);
- } else if (sense_key == UNIT_ATTENTION) {
- /* check for media change */
+ break;
+ case UNIT_ATTENTION:
cdrom_saw_media_change(drive);
return 0;
- } else if (sense_key == ILLEGAL_REQUEST &&
- rq->cmd[0] == GPCMD_START_STOP_UNIT) {
+ case ILLEGAL_REQUEST:
/*
* Don't print error message for this condition--
* SFF8090i indicates that 5/24/00 is the correct
@@ -355,9 +354,13 @@ static int cdrom_decode_status(ide_drive
* drive doesn't have that capability.
* cdrom_log_sense() knows this!
*/
- } else if (!(rq->cmd_flags & REQ_QUIET)) {
- /* otherwise, print an error */
- ide_dump_status(drive, "packet command error", stat);
+ if (rq->cmd[0] == GPCMD_START_STOP_UNIT)
+ break;
+ /* fall-through */
+ default:
+ if ((rq->cmd_flags & REQ_QUIET) == 0)
+ ide_dump_status(drive, "packet command error",
+ stat);
}
rq->cmd_flags |= REQ_FAILED;
@@ -377,12 +380,11 @@ static int cdrom_decode_status(ide_drive
if (blk_noretry_request(rq))
do_end_request = 1;
- if (sense_key == NOT_READY) {
- /* tray open */
+ switch (sense_key) {
+ case NOT_READY:
if (rq_data_dir(rq) == READ) {
cdrom_saw_media_change(drive);
- /* fail the request */
if ((rq->cmd_flags & REQ_QUIET) == 0)
printk(KERN_ERR PFX "%s: tray open\n",
drive->name);
@@ -391,8 +393,8 @@ static int cdrom_decode_status(ide_drive
return 1;
}
do_end_request = 1;
- } else if (sense_key == UNIT_ATTENTION) {
- /* media change */
+ break;
+ case UNIT_ATTENTION:
cdrom_saw_media_change(drive);
/*
@@ -401,8 +403,9 @@ static int cdrom_decode_status(ide_drive
*/
if (++rq->errors > ERROR_MAX)
do_end_request = 1;
- } else if (sense_key == ILLEGAL_REQUEST ||
- sense_key == DATA_PROTECT) {
+ break;
+ case ILLEGAL_REQUEST:
+ case DATA_PROTECT:
/*
* No point in retrying after an illegal request or data
* protect error.
@@ -410,7 +413,8 @@ static int cdrom_decode_status(ide_drive
if ((rq->cmd_flags & REQ_QUIET) == 0)
ide_dump_status(drive, "command error", stat);
do_end_request = 1;
- } else if (sense_key == MEDIUM_ERROR) {
+ break;
+ case MEDIUM_ERROR:
/*
* No point in re-trying a zillion times on a bad
* sector. If we got here the error is not correctable.
@@ -419,19 +423,22 @@ static int cdrom_decode_status(ide_drive
ide_dump_status(drive, "media error "
"(bad sector)", stat);
do_end_request = 1;
- } else if (sense_key == BLANK_CHECK) {
+ break;
+ case BLANK_CHECK:
/* disk appears blank ?? */
if ((rq->cmd_flags & REQ_QUIET) == 0)
ide_dump_status(drive, "media error (blank)",
stat);
do_end_request = 1;
- } else if ((err & ~ATA_ABORTED) != 0) {
- /* go to the default handler for other errors */
- ide_error(drive, "cdrom_decode_status", stat);
- return 1;
- } else if ((++rq->errors > ERROR_MAX)) {
- /* we've racked up too many retries, abort */
- do_end_request = 1;
+ break;
+ default:
+ if (err & ~ATA_ABORTED) {
+ /* go to the default handler for other errors */
+ ide_error(drive, "cdrom_decode_status", stat);
+ return 1;
+ } else if (++rq->errors > ERROR_MAX)
+ /* we've racked up too many retries, abort */
+ do_end_request = 1;
}
/*
next prev parent reply other threads:[~2009-04-03 19:54 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-03 19:57 [PATCH 1/5] ide-cd: respect REQ_QUIET for fs requests in cdrom_decode_status() Bartlomiej Zolnierkiewicz
2009-04-03 19:58 ` [PATCH 2/5] ide-cd: update debugging support Bartlomiej Zolnierkiewicz
2009-04-03 19:58 ` Bartlomiej Zolnierkiewicz [this message]
2009-04-05 6:09 ` [PATCH 3/5] ide-cd: convert cdrom_decode_status() to use switch statements Borislav Petkov
2009-04-05 6:25 ` Borislav Petkov
2009-04-03 19:58 ` [PATCH 4/5] ide-cd: unify handling of fs and pc requests in cdrom_decode_status() Bartlomiej Zolnierkiewicz
2009-04-05 6:46 ` Borislav Petkov
2009-04-03 19:58 ` [PATCH 5/5] ide-cd: fix intendation " Bartlomiej Zolnierkiewicz
2009-04-05 8:02 ` Borislav Petkov
2009-04-05 5:13 ` [PATCH 1/5] ide-cd: respect REQ_QUIET for fs requests " Borislav Petkov
2009-04-06 20:58 ` Bartlomiej Zolnierkiewicz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090403195810.31438.66965.sendpatchset@localhost.localdomain \
--to=bzolnier@gmail.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=petkovbb@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.