Re: LaCie Big Disk Query

From: Stefan Richter <stefanr_at_s5r6.in-berlin.de>
Date: Mon 06 Oct 2003 - 19:49:07 CEST
Message-Id: <200310061747.h96HlO5n025887@hirsch.in-berlin.de>

> 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-user
Received 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