public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Block layer question - indicating EOF on block devices
@ 2004-11-30 15:50 Alan Cox
  2004-12-01  2:43 ` Andrew Morton
  0 siblings, 1 reply; 6+ messages in thread
From: Alan Cox @ 2004-11-30 15:50 UTC (permalink / raw)
  To: axboe, akpm, Linux Kernel Mailing List

How is a block device meant to indicate to the block layer that the read
issued is beyond EOF. For the case where the true EOF is known the
capacity information is propogated into the inode and that is used. For
the case where a read exceeds the known EOF the block layer sets BIO_EOF
which appears nowhere else I can find.

I'm trying to sort out the case where the block device has only an
approximate length known in advance. At the low level I've got sense
data so I know precisely when I hit the real EOF on read. I can pull
that out, I can partially complete the request neatly up to the EOF but
I can't find any code anywhere dealing with passing back an EOF.

Nor it turns out is it handleable in user space because a read to the
true EOF causes readahead into the fuzzy zone between the actual EOF and
the end of media.

Currently I see the error, pull the sense data, extract the block number
and complete the request to the point it succeeded then fail the rest,
but this doesn't end the I/O if someone is using something like cp, and
it also fills the log with "I/O error on" spew from the block layer
innards even if REQ_QUIET is magically set.


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2004-12-02 14:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-11-30 15:50 Block layer question - indicating EOF on block devices Alan Cox
2004-12-01  2:43 ` Andrew Morton
2004-12-01 14:54   ` Alan Cox
2004-12-02  8:18     ` Jens Axboe
2004-12-02 13:01       ` Alan Cox
2004-12-02 14:07         ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox