> On Mon, 2003-10-06 at 03:03, Rishi Viner wrote:
>> "When the read errors occur, I get the following messages in the kernel log:
>> .... .... Oct 3 11:50:33 maple kernel: 08:01: rw=0, want=1657630264,
>> limit=390716833 Oct 3 11:50:33 maple kernel: attempt to access beyond end
>> of device
This comes from the block IO layer: drivers/block/ll_rw_blk.c
A comment says:
/* This may well happen - the kernel calls bread()
without checking the size of the device, e.g.,
when mounting a device. */
Up to this sector is to be read:
1657630264 = 1·G + 556·M + 859·k + 568
While the block device is limited to sector number:
390716833 = 372·M + 631·k + 417
The latter number looks correct for a 400 GB drive that is
logically divided into 1 kByte sized blocks. Obviously, somewhere
is a bad block address produced. This may happen e.g. with
erroneous conversions between signed and unsigned data types or
long int and int, or by incompletely initialized variables. The
values you posted are around the limit of signed int32 when 512
byte sized blocks are addressed.
I speculate that the error in bread() is detected before scsi and
sbp2 got involved. I guess the Linux block IO layer is above
scsi, isn't it? Above the block IO would be the filesystem, and
device accessing applications like fdisk.
-- Stefan Richter -=====-=--== =-=- --==- http://arcgraph.de/sr/ ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ mailing list Linux1394-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux1394-userReceived on Mon Oct 6 19:53:39 2003
This archive was generated by hypermail 2.1.8 : Mon 02 May 2005 - 09:16:44 CEST