linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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 *);

  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).