Subject: [PATCH] IDE update for 2.6.7-rc3 [7/12]


[PATCH] ide: fix ide-cd to not retry REQ_DRIVE_TASKFILE requests

'cat /proc/ide/hdx/identify' generates REQ_DRIVE_TASKFILE request
(for WIN_PIDENTIFY command) even for devices controlled by ide-cd.

All other drivers don't retry such requests.

Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>

linux-2.6.7-rc3-bzolnier/drivers/ide/ide-cd.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN drivers/ide/ide-cd.c~ide_cdrom_taskfile drivers/ide/ide-cd.c
--- linux-2.6.7-rc3/drivers/ide/ide-cd.c~ide_cdrom_taskfile 2004-06-10 23:01:31.725338592 +0200
+++ linux-2.6.7-rc3-bzolnier/drivers/ide/ide-cd.c 2004-06-10 23:01:31.731337680 +0200
@@ -574,7 +574,7 @@ ide_startstop_t ide_cdrom_error (ide_dri
if (drive == NULL || (rq = HWGROUP(drive)->rq) == NULL)
return ide_stopped;
/* retry only "normal" I/O: */
- if (rq->flags & (REQ_DRIVE_CMD | REQ_DRIVE_TASK)) {
+ if (rq->flags & (REQ_DRIVE_CMD | REQ_DRIVE_TASK | REQ_DRIVE_TASKFILE)) {
rq->errors = 1;
ide_end_drive_cmd(drive, stat, err);
return ide_stopped;

_


2004-06-11 16:48:42

by Jens Axboe

[permalink] [raw]
Subject: Re: [PATCH] IDE update for 2.6.7-rc3 [7/12]

On Fri, Jun 11 2004, Bartlomiej Zolnierkiewicz wrote:
>
> [PATCH] ide: fix ide-cd to not retry REQ_DRIVE_TASKFILE requests
>
> 'cat /proc/ide/hdx/identify' generates REQ_DRIVE_TASKFILE request
> (for WIN_PIDENTIFY command) even for devices controlled by ide-cd.
>
> All other drivers don't retry such requests.
>
> Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
>
> linux-2.6.7-rc3-bzolnier/drivers/ide/ide-cd.c | 2 +-
> 1 files changed, 1 insertion(+), 1 deletion(-)
>
> diff -puN drivers/ide/ide-cd.c~ide_cdrom_taskfile drivers/ide/ide-cd.c
> --- linux-2.6.7-rc3/drivers/ide/ide-cd.c~ide_cdrom_taskfile 2004-06-10 23:01:31.725338592 +0200
> +++ linux-2.6.7-rc3-bzolnier/drivers/ide/ide-cd.c 2004-06-10 23:01:31.731337680 +0200
> @@ -574,7 +574,7 @@ ide_startstop_t ide_cdrom_error (ide_dri
> if (drive == NULL || (rq = HWGROUP(drive)->rq) == NULL)
> return ide_stopped;
> /* retry only "normal" I/O: */
> - if (rq->flags & (REQ_DRIVE_CMD | REQ_DRIVE_TASK)) {
> + if (rq->flags & (REQ_DRIVE_CMD | REQ_DRIVE_TASK | REQ_DRIVE_TASKFILE)) {
> rq->errors = 1;
> ide_end_drive_cmd(drive, stat, err);
> return ide_stopped;

Was wondering whether it was clearer to use !blk_fs_request() instead,
but that would need looking at REQ_PC and REQ_BLOCK_PC. So for now the
above is fine with me, if you include ide_cdrom_abort() as well.

--
Jens Axboe

Subject: Re: [PATCH] IDE update for 2.6.7-rc3 [7/12]

On Friday 11 of June 2004 18:45, Jens Axboe wrote:
> On Fri, Jun 11 2004, Bartlomiej Zolnierkiewicz wrote:
> > [PATCH] ide: fix ide-cd to not retry REQ_DRIVE_TASKFILE requests
> >
> > 'cat /proc/ide/hdx/identify' generates REQ_DRIVE_TASKFILE request
> > (for WIN_PIDENTIFY command) even for devices controlled by ide-cd.
> >
> > All other drivers don't retry such requests.
> >
> > Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
> >
> > linux-2.6.7-rc3-bzolnier/drivers/ide/ide-cd.c | 2 +-
> > 1 files changed, 1 insertion(+), 1 deletion(-)
> >
> > diff -puN drivers/ide/ide-cd.c~ide_cdrom_taskfile drivers/ide/ide-cd.c
> > --- linux-2.6.7-rc3/drivers/ide/ide-cd.c~ide_cdrom_taskfile 2004-06-10
> > 23:01:31.725338592 +0200 +++
> > linux-2.6.7-rc3-bzolnier/drivers/ide/ide-cd.c 2004-06-10
> > 23:01:31.731337680 +0200 @@ -574,7 +574,7 @@ ide_startstop_t
> > ide_cdrom_error (ide_dri
> > if (drive == NULL || (rq = HWGROUP(drive)->rq) == NULL)
> > return ide_stopped;
> > /* retry only "normal" I/O: */
> > - if (rq->flags & (REQ_DRIVE_CMD | REQ_DRIVE_TASK)) {
> > + if (rq->flags & (REQ_DRIVE_CMD | REQ_DRIVE_TASK | REQ_DRIVE_TASKFILE))
> > { rq->errors = 1;
> > ide_end_drive_cmd(drive, stat, err);
> > return ide_stopped;
>
> Was wondering whether it was clearer to use !blk_fs_request() instead,
> but that would need looking at REQ_PC and REQ_BLOCK_PC. So for now the
> above is fine with me, if you include ide_cdrom_abort() as well.

OK, thanks.