Date: Fri, 30 Jan 1998 00:48:50 +1030 From: Mike Smith <mike@smith.net.au> To: Bruce Evans <bde@zeta.org.au> Cc: cvs-all@FreeBSD.ORG, cvs-committers@FreeBSD.ORG, cvs-sys@FreeBSD.ORG Subject: Re: cvs commit: src/sys/i386/isa wfd.c Message-ID: <199801291418.AAA00577@word.smith.net.au> In-Reply-To: Your message of "Thu, 29 Jan 1998 21:09:39 %2B1100." <199801291009.VAA22501@godzilla.zeta.org.au>
next in thread | previous in thread | raw e-mail | index | archive | help
> >> >It was not clear that this was legitimate; I infer from this that the > >> >correct approach is to return a nonzero value in b_resid, which will > >> >cause another call to the strategy routine. Is that correct? Will > >> >this work on 2.2? It's certainly a *much* tidier approach than what I > >> >am currently doing. > >> > >> Only for raw i/o. bread() and bwrite() don't even look at b_resid. > > > >Then it strikes me that you're suggesting a non-solution. Any other > >ideas? > > It's good enough for SCSI drivers. You just previously said that it wasn't adequate. Please make up your mind. 8) Either I should: - Leave things as they are (possibly suboptimal, but apparently functional). - Change to only handling as much of the request as we can in a single pass and leaving the overs in b_resid. So far you have suggested that I should do the second, because that's what SCSI adapters do, even though they never do because they can all handle MAXPHYS-sized transfers, and not all the calling code will honour the returned value in b_resid. This doesn't sound like much of a recommendation to me. -- \\ Sometimes you're ahead, \\ Mike Smith \\ sometimes you're behind. \\ mike@smith.net.au \\ The race is long, and in the \\ msmith@freebsd.org \\ end it's only with yourself. \\
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199801291418.AAA00577>