kernel revision 2.4.18, sd.c
line 927
rscsi_disks[i].capacity = 1 + ((buffer[0] << 24) |
(buffer[1] << 16) |
(buffer[2] << 8) |
buffer[3]);
which is max number of sectors = 2^32
line 940
if (sector_size != 512 &&
sector_size != 1024 &&
sector_size != 2048 &&
sector_size != 4096 &&
sector_size != 256) {
printk("%s : unsupported sector size %d.\n",
nbuff, sector_size);
/*
* The user might want to re-format the drive with
* a supported sectorsize. Once this happens, it
* would be relatively trivial to set the thing up.
* For this reason, we leave the thing in the table.
*/
rscsi_disks[i].capacity = 0;
}
which limits sector size to a max of 2^12, which may lead us to think that
the max drive capacity would be 2^44 - 16TB, but later on
line 999
/* Rescale capacity to 512-byte units */
if (sector_size == 4096)
rscsi_disks[i].capacity <<= 3;
if (sector_size == 2048)
rscsi_disks[i].capacity <<= 2;
if (sector_size == 1024)
rscsi_disks[i].capacity <<= 1;
if (sector_size == 256)
rscsi_disks[i].capacity >>= 1;
which would result in a max drive capacity supported to be 2TB
although this is not a issue to me personally, it just raised questions in my
mind as to how does it do it for raids larger than 2tb
thanks for reading the rambling
niraj gupta
nirajgupta@yahoo.com
-
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/