Re: blk_queue_hardsect_size 520-byte sector

From: Alan Cox
Date: Fri Jun 06 2008 - 06:34:14 EST


On Fri, 6 Jun 2008 09:54:33 +0200
Jens Axboe <jens.axboe@xxxxxxxxxx> wrote:

> On Thu, Jun 05 2008, Anil kumar wrote:
> > Hi,
> >
> > Can I call blk_queue_hardsect_size in a driver and set it to 520-byte
> > as hardware sector size. How does the kernel and block layers take
> > the request, will it be in multiples of 520-bytes aligned or 512 bytes
> > aligned?
>
> No, Linux only supports power-of-2 hardware block sizes I'm afraid.

And only some of those - which is why we can't support CP/M disks and
also early smartmedia stuff (128/256 byte/sector)

If you are trying to deal with 520 byte blocks that are 512 bytes file
system data + 8 bytes of meta data then use 512 byte block sizes and put
the meta-data somewhere else or provide a different way to access it -
eg ATA uses 512 byte sectors for normal ATA but the sg_io() ioctl path
allows the issuing of commands like READ_LONG for specific cases where
the additional meta data is needed.

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