From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: David Miller <davem@davemloft.net>
Cc: linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org,
petkovbb@gmail.com, htejun@gmail.com
Subject: Re: [patch 3/6] ide: always kill the whole request on error
Date: Wed, 24 Jun 2009 02:49:32 +0200 [thread overview]
Message-ID: <200906240249.33505.bzolnier@gmail.com> (raw)
In-Reply-To: <20090623.161904.177489795.davem@davemloft.net>
On Wednesday 24 June 2009 01:19:04 David Miller wrote:
> From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
> Date: Tue, 23 Jun 2009 23:27:27 +0200
>
> > From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
> > Subject: [PATCH] ide: always kill the whole request on error
> >
> > * Use blk_rq_bytes() instead of obsolete ide_rq_bytes() in ide_kill_rq()
> > and ide_floppy_do_request() for failed requests.
> > [ bugfix part ]
> >
> > * Use blk_rq_bytes() instead of obsolete ide_rq_bytes() in ide_do_devset()
> > and ide_complete_drive_reset(). Then remove ide_rq_bytes().
> > [ cleanup part ]
> >
> > Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
> > ---
> > 'cleanup part' tested, limited testing with 'bugfix part'
> > (using simulated failures of disk fs requests)
>
> Considering this alongsize patch #2, it even more begs the
> question as to why special requests on floppy and tape were
> handled differently. And that 'error <= 0' test, strange.
TBH I fail to see how it relates to changes present in _this_ patch
as no change in _this_ patch affects special tape/floppy requests..
> I have a hard time believing all of these differences are there for no
> reason at all. :-)
Lets keep personal believes aside in the technical discussions. ;)
> > drivers/ide/ide-devsets.c | 2 +-
> > drivers/ide/ide-eh.c | 2 +-
> > drivers/ide/ide-floppy.c | 2 +-
> > drivers/ide/ide-io.c | 14 ++------------
> > include/linux/ide.h | 1 -
> > 5 files changed, 5 insertions(+), 16 deletions(-)
> >
> > Index: b/drivers/ide/ide-devsets.c
> > ===================================================================
> > --- a/drivers/ide/ide-devsets.c
> > +++ b/drivers/ide/ide-devsets.c
> > @@ -183,6 +183,6 @@ ide_startstop_t ide_do_devset(ide_drive_
> > err = setfunc(drive, *(int *)&rq->cmd[1]);
> > if (err)
> > rq->errors = err;
> > - ide_complete_rq(drive, err, ide_rq_bytes(rq));
> > + ide_complete_rq(drive, err, blk_rq_bytes(rq));
> > return ide_stopped;
> > }
> > Index: b/drivers/ide/ide-eh.c
> > ===================================================================
> > --- a/drivers/ide/ide-eh.c
> > +++ b/drivers/ide/ide-eh.c
> > @@ -149,7 +149,7 @@ static inline void ide_complete_drive_re
> > if (rq && blk_special_request(rq) && rq->cmd[0] == REQ_DRIVE_RESET) {
> > if (err <= 0 && rq->errors == 0)
> > rq->errors = -EIO;
> > - ide_complete_rq(drive, err ? err : 0, ide_rq_bytes(rq));
> > + ide_complete_rq(drive, err ? err : 0, blk_rq_bytes(rq));
> > }
> > }
> >
> > Index: b/drivers/ide/ide-floppy.c
> > ===================================================================
> > --- a/drivers/ide/ide-floppy.c
> > +++ b/drivers/ide/ide-floppy.c
> > @@ -293,7 +293,7 @@ out_end:
> > drive->failed_pc = NULL;
> > if (blk_fs_request(rq) == 0 && rq->errors == 0)
> > rq->errors = -EIO;
> > - ide_complete_rq(drive, -EIO, ide_rq_bytes(rq));
> > + ide_complete_rq(drive, -EIO, blk_rq_bytes(rq));
> > return ide_stopped;
> > }
> >
> > Index: b/drivers/ide/ide-io.c
> > ===================================================================
> > --- a/drivers/ide/ide-io.c
> > +++ b/drivers/ide/ide-io.c
> > @@ -112,16 +112,6 @@ void ide_complete_cmd(ide_drive_t *drive
> > }
> > }
> >
> > -/* obsolete, blk_rq_bytes() should be used instead */
> > -unsigned int ide_rq_bytes(struct request *rq)
> > -{
> > - if (blk_pc_request(rq))
> > - return blk_rq_bytes(rq);
> > - else
> > - return blk_rq_cur_sectors(rq) << 9;
> > -}
> > -EXPORT_SYMBOL_GPL(ide_rq_bytes);
> > -
> > int ide_complete_rq(ide_drive_t *drive, int error, unsigned int nr_bytes)
> > {
> > ide_hwif_t *hwif = drive->hwif;
> > @@ -152,14 +142,14 @@ void ide_kill_rq(ide_drive_t *drive, str
> >
> > if ((media == ide_floppy || media == ide_tape) && drv_req) {
> > rq->errors = 0;
> > - ide_complete_rq(drive, -EIO, blk_rq_bytes(rq));
> > } else {
> > if (media == ide_tape)
> > rq->errors = IDE_DRV_ERROR_GENERAL;
> > else if (blk_fs_request(rq) == 0 && rq->errors == 0)
> > rq->errors = -EIO;
> > - ide_complete_rq(drive, -EIO, ide_rq_bytes(rq));
> > }
> > +
> > + ide_complete_rq(drive, -EIO, blk_rq_bytes(rq));
> > }
> >
> > static void ide_tf_set_specify_cmd(ide_drive_t *drive, struct ide_taskfile *tf)
> > Index: b/include/linux/ide.h
> > ===================================================================
> > --- a/include/linux/ide.h
> > +++ b/include/linux/ide.h
> > @@ -1062,7 +1062,6 @@ int generic_ide_ioctl(ide_drive_t *, str
> > extern int ide_vlb_clk;
> > extern int ide_pci_clk;
> >
> > -unsigned int ide_rq_bytes(struct request *);
> > int ide_end_rq(ide_drive_t *, struct request *, int, unsigned int);
> > void ide_kill_rq(ide_drive_t *, struct request *);
next prev parent reply other threads:[~2009-06-24 1:48 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-23 21:27 [patch 3/6] ide: always kill the whole request on error Bartlomiej Zolnierkiewicz
2009-06-23 23:19 ` David Miller
2009-06-23 23:37 ` Joe Perches
2009-06-23 23:39 ` David Miller
2009-06-24 0:49 ` Bartlomiej Zolnierkiewicz [this message]
2009-06-24 4:37 ` David Miller
2009-06-24 6:49 ` David Miller
2009-06-24 9:38 ` Bartlomiej Zolnierkiewicz
2009-06-24 9:56 ` David Miller
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=200906240249.33505.bzolnier@gmail.com \
--to=bzolnier@gmail.com \
--cc=davem@davemloft.net \
--cc=htejun@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.