patch-2.4.0-test2 linux/drivers/scsi/sd.c
Next file: linux/drivers/scsi/seagate.c
Previous file: linux/drivers/scsi/scsi_scan.c
Back to the patch index
Back to the overall index
- Lines: 46
- Date:
Mon Jun 19 13:42:41 2000
- Orig file:
v2.4.0-test1/linux/drivers/scsi/sd.c
- Orig date:
Wed Apr 26 16:34:08 2000
diff -u --recursive --new-file v2.4.0-test1/linux/drivers/scsi/sd.c linux/drivers/scsi/sd.c
@@ -338,6 +338,15 @@
this_count = this_count >> 2;
}
}
+ if (dpnt->device->sector_size == 4096) {
+ if ((block & 7) || (SCpnt->request.nr_sectors & 7)) {
+ printk("sd.c:Bad block number requested");
+ return 0;
+ } else {
+ block = block >> 3;
+ this_count = this_count >> 3;
+ }
+ }
switch (SCpnt->request.cmd) {
case WRITE:
if (!dpnt->device->writeable) {
@@ -588,6 +597,11 @@
if (block_sectors < 4)
block_sectors = 4;
break;
+ case 4096:
+ error_sector <<=3;
+ if (block_sectors < 8)
+ block_sectors = 8;
+ break;
case 256:
error_sector >>= 1;
break;
@@ -889,7 +903,7 @@
*/
rscsi_disks[i].capacity = 0;
}
- if (sector_size == 2048) {
+ if (sector_size > 1024) {
int m;
/*
@@ -899,7 +913,7 @@
* of partial sectors.
*/
for (m = i << 4; m < ((i + 1) << 4); m++) {
- sd_blocksizes[m] = 2048;
+ sd_blocksizes[m] = sector_size;
}
} {
/*
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)