Uh, thanks! I was looking at fs/block_dev.c.
if (blk_size[MAJOR(dev)])
size = ((loff_t) blk_size[MAJOR(dev)][MINOR(dev)] << BLOCK_SIZE_BITS) >> blocksize_bits;
which sets the size to the entered blk_size << 10 - blksize_bits.
I missed that BLOCK_SIZE_BITS was constant but blksize_bits is variable.
Amongst other things.
> OK I was to fast to figure it out:
>
> /*
> * blk_size contains the size of all block-devices in units of 1024 byte
> * sectors:
But this is not so .. it is the default, not the rule. And it is only
the default if the block size is the default value.
> int * blk_size[MAX_BLKDEV];
>
> /*
> * blksize_size contains the size of all block-devices:
Err .... they mean the BLOCK SIZE of all ...
> int * blksize_size[MAX_BLKDEV];
>
> /*
> * hardsect_size contains the size of the hardware sector of a device.
Never used. Thanks for clearing that up!
If you knew if the meaning of blk_size had ever changed, and when in
terms of kernel version, that would also be very very helpful.
Peter
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/