Messages in this thread | | | Date | Thu, 2 Dec 2004 09:18:28 +0100 | From | Jens Axboe <> | Subject | Re: Block layer question - indicating EOF on block devices |
| |
On Wed, Dec 01 2004, Alan Cox wrote: > On Mer, 2004-12-01 at 02:43, Andrew Morton wrote: > > Alan Cox <alan@lxorguk.ukuu.org.uk> wrote: > > If the driver simply returns an I/O error, userspace should see a short > > read and be happy? > > And the logs fill with I/O error messages.
read-ahead should definitely be marked quiet, agree.
> > > and > > > it also fills the log with "I/O error on" spew from the block layer > > > innards even if REQ_QUIET is magically set. > > > > We'd need to propagate that quietness back up to the buffer_head layer, at > > least. > > Thats what I was assuming looking at the code. Really the block layer is > broken here. It should not be whining about I/O errors on readahead > blocks just letting them go. It has no idea if the readahead is a > badblock a media feature or whatever. (or as James added on irc scsi > reservations).
The upper buffer layer could do something intelligent if EOF is set on the bio, it really should. The problem is that there's no -EXXX to flag EOF from the driver, it would be nicest if one could just do:
end_that_request_chunk(req, 1, good_bytes); end_that_request_chunk(req, -EOF, residual);
and be done with it.
-- Jens Axboe
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |