Re: reading 1 hardsector size, not one block size

From: Andre Hedrick (andre@linux-ide.org)
Date: Sat Sep 30 2000 - 03:47:48 EST


On Sat, 30 Sep 2000, Alexander Viro wrote:

> How about /dev/hda? If you are talking about absolute block addresses you
> are way below the partitioning level.

But are you beyond what the detected capacity of the drive?

> > We are narrowing to point that appears to make zero sense, until you
> > realize that what is reported to Linux as capacity is less than reality.
>
> So set blksize_size and blk_size to whatever your driver can serve (sorry
> about the typo in the previous posting - blksize_size is sector size and
> blk_size is the number of sectors). VFS _will_ believe whatever your
> driver says.

In 99% of the cases sector size is 512 on the media/platter.
Until GLOBS (can not remember the name) is adopted the idea of physical
v/s logical sector size on the media is fixed (99%).

> Yes, it can, if your driver sets blksize_size correctly. _All_ information
> about device size is taken from that array and it's driver's business to
> put there whatever it believes to be the device size.

But because of the nature of your request and the method of opening the
device, would that not just wrap around the detected capacity?

> Again, for the VFS/filesystems/etc. "device size" means only one
> thing: "driver told us not to give it requests with ->sector greater than
> that number". That's it. Put 30*1024*1024*1024/512 there and kernel will

In the command or as a geometry/capacity defined at INIT?

> believe that disk is 30Gb (but then you'ld better be ready to serve such
> requests, indeed).

Now we are closer. Openning a device even raw and going through the drive
will prevent you from getting there, sorry. That is how it works. The
top level of the driver that mates with the list_head is bound and limited
to what it found.

> It's entirely driver business - you tell the kernel how large sector
> numbers you are ready to deal with and you are done.

But there is a transfer limit per request.

So you hit the limit of the known/reported drive, provide you did not
crash the kernel by lying to it, do the partition tables remain in tack?
If the fall appart because of false boundaries we have a bigger mess.

To prevent this you have to get under the driver to the actual IO point.

Will have to finish in the morning (after sun up), sorry.

Cheers,

Andre Hedrick
The Linux ATA/IDE guy

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Sep 30 2000 - 21:00:26 EST