From: mike.miller@hp.com If no device is attached we now return -ENXIO instead of some bogus numbers. Prevents applications from trying to access non-existent disks. Also adds HDIO_GETGEO_BIG IOCTL that fdisk uses. --- 25-akpm/drivers/block/cciss.c | 7 ++----- 1 files changed, 2 insertions(+), 5 deletions(-) diff -puN drivers/block/cciss.c~cciss-ENXIO-fix drivers/block/cciss.c --- 25/drivers/block/cciss.c~cciss-ENXIO-fix 2004-03-26 10:12:33.961416352 -0800 +++ 25-akpm/drivers/block/cciss.c 2004-03-26 10:12:33.965415744 -0800 @@ -469,11 +469,8 @@ static int cciss_ioctl(struct inode *ino driver_geo.heads = drv->heads; driver_geo.sectors = drv->sectors; driver_geo.cylinders = drv->cylinders; - } else { - driver_geo.heads = 0xff; - driver_geo.sectors = 0x3f; - driver_geo.cylinders = (int)drv->nr_blocks / (0xff*0x3f); - } + } else + return -ENXIO; driver_geo.start= get_start_sect(inode->i_bdev); if (copy_to_user((void *) arg, &driver_geo, sizeof( struct hd_geometry))) _