diff options
31 files changed, 78 insertions, 176 deletions
diff --git a/drivers/acorn/block/mfmhd.c b/drivers/acorn/block/mfmhd.c index 55df18f1a484..bcb43f358167 100644 --- a/drivers/acorn/block/mfmhd.c +++ b/drivers/acorn/block/mfmhd.c @@ -1014,13 +1014,17 @@ static void mfm_interrupt_handler(int unused, void *dev_id, struct pt_regs *regs /* * Tell the user about the drive if we decided it exists. */ -static void mfm_geometry (int drive) +static void mfm_geometry(int drive) { - if (mfm_info[drive].cylinders) - printk ("mfm%c: %dMB CHS=%d/%d/%d LCC=%d RECOMP=%d\n", 'a' + drive, - mfm_info[drive].cylinders * mfm_info[drive].heads * mfm_info[drive].sectors / 4096, - mfm_info[drive].cylinders, mfm_info[drive].heads, mfm_info[drive].sectors, - mfm_info[drive].lowcurrent, mfm_info[drive].precomp); + struct mfm_info *p = mfm_info + drive; + struct gendisk *disk = mfm_gendisk + drive; + if (p->cylinders) + printk ("%s: %dMB CHS=%d/%d/%d LCC=%d RECOMP=%d\n", + disk->major_name, + p->cylinders * p->heads * p->sectors / 4096, + p->cylinders, p->heads, p->sectors, + p->lowcurrent, p->precomp); + set_capacity(disk, p->cylinders * p->heads * p->sectors / 2); } #ifdef CONFIG_BLK_DEV_MFM_AUTODETECT @@ -1241,7 +1245,6 @@ void xd_set_geometry(struct block_device *bdev, unsigned char secsptrack, if (raw_cmd.dev == drive) mfm_specify (); mfm_geometry (drive); - set_capacity(&mfm_gendisk[drive], mfm_info[drive].cylinders * mfm_info[drive].heads * mfm_info[drive].sectors / 2); } } @@ -1267,12 +1270,8 @@ static void mfm_geninit (void) outw(0x80, mfm_irqenable); /* Required to enable IRQs from MFM podule */ for (i = 0; i < mfm_drives; i++) { - add_gendisk(mfm_gendisk + i); - mfm_geometry (i); - register_disk(mfm_gendisk + i, mk_kdev(MAJOR_NR,i<<6), 1<<6, - &mfm_fops, - mfm_info[i].cylinders * mfm_info[i].heads * - mfm_info[i].sectors / 2); + mfm_geometry(i); + add_disk(mfm_gendisk + i); } } diff --git a/drivers/block/DAC960.c b/drivers/block/DAC960.c index 5b80e71ae5f7..23f8d25f9ec2 100644 --- a/drivers/block/DAC960.c +++ b/drivers/block/DAC960.c @@ -1973,7 +1973,6 @@ static boolean DAC960_RegisterBlockDevice(DAC960_Controller_T *Controller) disk->major_name = names + 9 * n; disk->minor_shift = DAC960_MaxPartitionsBits; disk->fops = &DAC960_BlockDeviceOperations; - add_gendisk(disk); } /* Indicate the Block Device Registration completed successfully, @@ -2622,10 +2621,8 @@ static int DAC960_Initialize(void) if (Controller == NULL) continue; DAC960_InitializeController(Controller); for (disk = 0; disk < DAC960_MaxLogicalDrives; disk++) { - long size = disk_size(Controller, disk); - register_disk(&Controller->disks[disk], - DAC960_KernelDevice(Controller->ControllerNumber, disk, 0), - DAC960_MaxPartitions, &DAC960_BlockDeviceOperations, size); + set_capacity(&Controller->disks[disk], disk_size(Controller, disk)); + add_disk(&Controller->disks[disk]); } } DAC960_CreateProcEntries(); @@ -5268,9 +5265,8 @@ static int DAC960_Open(Inode_T *Inode, File_T *File) Controller->LogicalDriveInitiallyAccessible[LogicalDriveNumber] = true; size = disk_size(Controller, LogicalDriveNumber); /* BROKEN, same as modular ide-floppy/ide-disk; same fix - ->probe() */ - register_disk(&Controller->disks[LogicalDriveNumber], - DAC960_KernelDevice(Controller->ControllerNumber, LogicalDriveNumber, 0), - DAC960_MaxPartitions, &DAC960_BlockDeviceOperations, size); + set_capacity(&Controller->disks[LogicalDriveNumber], size); + add_disk(&Controller->disks[LogicalDriveNumber]); } if (!get_capacity(&Controller->disks[LogicalDriveNumber])) return -ENXIO; diff --git a/drivers/block/acsi.c b/drivers/block/acsi.c index 3313f7cb0a3c..194015a269e7 100644 --- a/drivers/block/acsi.c +++ b/drivers/block/acsi.c @@ -1698,11 +1698,8 @@ static void acsi_geninit(void) disk->major_name = acsi_names + 4*i; disk->minor_shift = (acsi_info[i].type==HARDDISK)?4:0; disk->fops = &acsi_fops; - add_gendisk(disk); - register_disk(disk, mk_kdev(disk->major, disk->first_minor), - 1<<disk->minor_shift, - disk->fops, - acsi_info[i].size); + set_capacity(disk, acsi_info[i].size); + add_disk(disk); } } diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 8f78cf4d16f2..33aa4d1f1781 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -769,11 +769,8 @@ static int revalidate_allvol(kdev_t dev) continue; (BLK_DEFAULT_QUEUE(MAJOR_NR + ctlr))->hardsect_size = drv->block_size; disk->major_name = hba[ctlr]->names + 12 * i; - add_gendisk(disk); - register_disk(disk, - mk_kdev(disk->major, disk->first_minor), - 1<<disk->minor_shift, disk->fops, - drv->nr_blocks); + set_capacity(disk, drv->nr_blocks); + add_disk(disk); } hba[ctlr]->usage_count--; return 0; @@ -1241,12 +1238,8 @@ static int register_new_disk(int ctlr) /* setup partitions per disk */ disk = &hba[ctlr]->gendisk[logvol]; disk->major_name = hba[ctlr]->names + 12 * logvol; - add_gendisk(disk); - register_disk(disk, - mk_kdev(disk->major, disk->first_minor), - 1<<disk->minor_shift, - disk->fops, - hba[ctlr]->drv[logvol].nr_blocks); + set_capacity(disk, hba[ctlr]->drv[logvol].nr_blocks); + add_disk(disk); kfree(ld_buff); kfree(size_buff); @@ -2449,11 +2442,8 @@ static int __init cciss_init_one(struct pci_dev *pdev, continue; (BLK_DEFAULT_QUEUE(MAJOR_NR + i))->hardsect_size = drv->block_size; disk->major_name = hba[i]->names + 12 * j; - add_gendisk(disk); - register_disk(disk, - mk_kdev(disk->major, disk->first_minor), - 1<<disk->minor_shift, disk->fops, - drv->nr_blocks); + set_capacity(disk, drv->nr_blocks); + add_disk(disk); } cciss_register_scsi(i, 1); /* hook ourself into SCSI subsystem */ diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c index d1947a4e2be6..dec7ab4b6cf9 100644 --- a/drivers/block/cpqarray.c +++ b/drivers/block/cpqarray.c @@ -449,11 +449,8 @@ int __init cpqarray_init(void) continue; disk->major_name = ida_names + (i*NWD+j)*10; (BLK_DEFAULT_QUEUE(MAJOR_NR + i))->hardsect_size = drv->blk_size; - add_gendisk(disk); - register_disk(disk, - mk_kdev(disk->major,disk->first_minor), - 1<<disk->minor_shift, disk->fops, - drv->nr_blks); + set_capacity(disk, drv->nr_blks); + add_disk(disk); } } /* done ! */ @@ -1475,11 +1472,8 @@ static int revalidate_allvol(kdev_t dev) continue; (BLK_DEFAULT_QUEUE(MAJOR_NR + ctlr))->hardsect_size = drv->blk_size; disk->major_name = ida_names + (ctlr*NWD+i)*10; - add_gendisk(disk); - register_disk(disk, - mk_kdev(disk->major,disk->first_minor), - 1<<disk->minor_shift, disk->fops, - drv->nr_blks); + set_capacity(disk, drv->nr_blks); + add_disk(disk); } hba[ctlr]->usage_count--; diff --git a/drivers/block/genhd.c b/drivers/block/genhd.c index 51b77476e95f..d808f4334fae 100644 --- a/drivers/block/genhd.c +++ b/drivers/block/genhd.c @@ -40,8 +40,7 @@ static struct gendisk *gendisk_head; * This function registers the partitioning information in @gp * with the kernel. */ -void -add_gendisk(struct gendisk *gp) +static void add_gendisk(struct gendisk *gp) { struct gendisk *sgp; struct hd_struct *p = NULL; @@ -80,7 +79,14 @@ out: write_unlock(&gendisk_lock); } -EXPORT_SYMBOL(add_gendisk); +void add_disk(struct gendisk *disk) +{ + add_gendisk(disk); + register_disk(disk, mk_kdev(disk->major, disk->first_minor), + 1<<disk->minor_shift, disk->fops, get_capacity(disk)); +} + +EXPORT_SYMBOL(add_disk); EXPORT_SYMBOL(del_gendisk); void unlink_gendisk(struct gendisk *disk) diff --git a/drivers/block/paride/pcd.c b/drivers/block/paride/pcd.c index e227f25b5611..a5fda21053af 100644 --- a/drivers/block/paride/pcd.c +++ b/drivers/block/paride/pcd.c @@ -932,12 +932,7 @@ static int __init pcd_init(void) if (cd->present) { struct gendisk *disk = &cd->disk; register_cdrom(&cd->info); - add_gendisk(disk); - register_disk(disk, - mk_kdev(disk->major,disk->first_minor), - 1<<disk->minor_shift, - disk->fops, - 0); + add_disk(disk); } } diff --git a/drivers/block/paride/pd.c b/drivers/block/paride/pd.c index 66e3300028a2..090850c8647b 100644 --- a/drivers/block/paride/pd.c +++ b/drivers/block/paride/pd.c @@ -687,10 +687,8 @@ static int pd_detect( void ) PD.gd.fops = &pd_fops; PD.gd.major = major; PD.gd.first_minor = unit << PD_BITS; - add_gendisk(&PD.gd); - register_disk(&PD.gd,mk_kdev(MAJOR_NR,unit<<PD_BITS), - PD_PARTNS,&pd_fops, - PD.capacity); + set_capacity(&PD.gd, PD.capacity); + add_disk(&PD.gd); } } if (k) diff --git a/drivers/block/paride/pf.c b/drivers/block/paride/pf.c index 41c77355549a..c389ef1d9058 100644 --- a/drivers/block/paride/pf.c +++ b/drivers/block/paride/pf.c @@ -987,10 +987,7 @@ static int __init pf_init(void) struct gendisk *disk = &pf->disk; if (!pf->present) continue; - add_gendisk(disk); - register_disk(disk, mk_kdev(disk->major, disk->first_minor), - 1<<disk->minor_shift, disk->fops, - get_capacity(disk)); + add_disk(disk); } return 0; } diff --git a/drivers/block/ps2esdi.c b/drivers/block/ps2esdi.c index 2b4d18cd054d..bd099d196d4d 100644 --- a/drivers/block/ps2esdi.c +++ b/drivers/block/ps2esdi.c @@ -435,11 +435,9 @@ static int __init ps2esdi_geninit(void) for (i = 0; i < ps2esdi_drives; i++) { struct gendisk *disk = ps2esdi_gendisk + i; - add_gendisk(disk); - register_disk(disk, mk_kdev(disk->major,disk->first_minor), - 1<<disk->minor_shift, disk->fops, - ps2esdi_info[i].head * ps2esdi_info[i].sect * + set_capacity(disk, ps2esdi_info[i].head * ps2esdi_info[i].sect * ps2esdi_info[i].cyl); + add_disk(disk); } return 0; diff --git a/drivers/block/umem.c b/drivers/block/umem.c index ea9a3b15d358..50097483e9e3 100644 --- a/drivers/block/umem.c +++ b/drivers/block/umem.c @@ -1199,11 +1199,8 @@ int __init mm_init(void) disk->major_name = mm_names + i*6; disk->minor_shift = MM_SHIFT; disk->fops = &mm_fops; - add_gendisk(disk); - register_disk(disk, mk_kdev(disk->major, disk->first_minor), - 1<<disk->minor_shift, - disk->fops, - cards[i].mm_size << 1); + set_capacity(disk, cards[i].mm_size << 1); + add_disk(disk); } init_battery_timer(); diff --git a/drivers/block/xd.c b/drivers/block/xd.c index 97ec536e4756..4ef60691a2d9 100644 --- a/drivers/block/xd.c +++ b/drivers/block/xd.c @@ -222,12 +222,9 @@ int __init xd_init (void) for (i = 0; i < xd_drives; i++) { struct gendisk *disk = xd_gendisk + i; - add_gendisk(disk); - register_disk(disk, mk_kdev(disk->major,disk->first_minor), - 1<<disk->minor_shift, - disk->fops, - xd_info[i].heads * xd_info[i].cylinders * + set_capacity(disk, xd_info[i].heads * xd_info[i].cylinders * xd_info[i].sectors); + add_disk(disk); } return 0; diff --git a/drivers/cdrom/cdu31a.c b/drivers/cdrom/cdu31a.c index b197597a6d55..bd55ea0d8cd3 100644 --- a/drivers/cdrom/cdu31a.c +++ b/drivers/cdrom/cdu31a.c @@ -3443,12 +3443,7 @@ int __init cdu31a_init(void) scd_info.mask = deficiency; if (register_cdrom(&scd_info)) goto errout0; - add_gendisk(disk); - register_disk(disk, - mk_kdev(disk->major,disk->first_minor), - 1<<disk->minor_shift, - disk->fops, - 0); + add_disk(disk); } diff --git a/drivers/cdrom/cm206.c b/drivers/cdrom/cm206.c index c43ed6d66fe1..a2c924b970be 100644 --- a/drivers/cdrom/cm206.c +++ b/drivers/cdrom/cm206.c @@ -1482,12 +1482,7 @@ int __init cm206_init(void) printk(KERN_INFO "Cannot register for cdrom %d!\n", MAJOR_NR); goto out_cdrom; } - add_gendisk(disk); - register_disk(disk, - mk_kdev(disk->major,disk->first_minor), - 1<<disk->minor_shift, - disk->fops, - 0); + add_disk(disk); blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), do_cm206_request, &cm206_lock); blk_queue_hardsect_size(BLK_DEFAULT_QUEUE(MAJOR_NR), 2048); diff --git a/drivers/cdrom/mcd.c b/drivers/cdrom/mcd.c index c417644e6df2..9fd5a13f05be 100644 --- a/drivers/cdrom/mcd.c +++ b/drivers/cdrom/mcd.c @@ -1130,12 +1130,7 @@ int __init mcd_init(void) printk(KERN_ERR "mcd: Unable to register Mitsumi CD-ROM.\n"); goto out_cdrom; } - add_gendisk(disk); - register_disk(disk, - mk_kdev(disk->major,disk->first_minor), - 1<<disk->minor_shift, - disk->fops, - 0); + add_disk(disk); printk(msg); return 0; diff --git a/drivers/cdrom/mcdx.c b/drivers/cdrom/mcdx.c index 22e7d30af945..748bae979b63 100644 --- a/drivers/cdrom/mcdx.c +++ b/drivers/cdrom/mcdx.c @@ -1230,12 +1230,7 @@ int __init mcdx_init_drive(int drive) blk_cleanup_queue(BLK_DEFAULT_QUEUE(MAJOR_NR)); return 2; } - add_gendisk(disk); - register_disk(disk, - mk_kdev(disk->major,disk->first_minor), - 1<<disk->minor_shift, - disk->fops, - 0); + add_disk(disk); printk(msg); return 0; } diff --git a/drivers/cdrom/sbpcd.c b/drivers/cdrom/sbpcd.c index b39b4b630d99..f255d069a752 100644 --- a/drivers/cdrom/sbpcd.c +++ b/drivers/cdrom/sbpcd.c @@ -5843,12 +5843,7 @@ int __init sbpcd_init(void) { printk(" sbpcd: Unable to register with Uniform CD-ROm driver\n"); } - add_gendisk(disk); - register_disk(disk, - mk_kdev(disk->major,disk->first_minor), - 1<<disk->minor_shift, - disk->fops, - 0); + add_disk(disk); } blk_queue_hardsect_size(BLK_DEFAULT_QUEUE(MAJOR_NR), CD_FRAMESIZE); diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c index 345a4b5079a3..ebb46668ad27 100644 --- a/drivers/ide/ide-cd.c +++ b/drivers/ide/ide-cd.c @@ -3143,10 +3143,7 @@ static int ide_cdrom_attach (ide_drive_t *drive) DRIVER(drive)->busy--; cdrom_read_toc(drive, &sense); - add_gendisk(g); - register_disk(g, mk_kdev(g->major,g->first_minor), - 1<<g->minor_shift, ide_fops, - get_capacity(g)); + add_disk(g); return 0; failed: return 1; diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c index 0dbc6e4366d4..58438b363cf9 100644 --- a/drivers/ide/ide-disk.c +++ b/drivers/ide/ide-disk.c @@ -1706,10 +1706,8 @@ static int idedisk_attach(ide_drive_t *drive) g->de = drive->de; g->flags = drive->removable ? GENHD_FL_REMOVABLE : 0; g->flags |= GENHD_FL_DEVFS; - add_gendisk(g); - register_disk(g, mk_kdev(g->major,g->first_minor), - 1<<g->minor_shift, ide_fops, - current_capacity(drive)); + set_capacity(g, current_capacity(drive)); + add_disk(g); return 0; failed: return 1; diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c index 0840066639f2..c0cd08ad6f29 100644 --- a/drivers/ide/ide-floppy.c +++ b/drivers/ide/ide-floppy.c @@ -2111,10 +2111,7 @@ static int idefloppy_attach (ide_drive_t *drive) g->de = drive->de; g->flags = drive->removable ? GENHD_FL_REMOVABLE : 0; g->flags |= GENHD_FL_DEVFS; - add_gendisk(g); - register_disk(g, mk_kdev(g->major,g->first_minor), - 1<<g->minor_shift, ide_fops, - get_capacity(g)); + add_disk(g); return 0; failed: return 1; diff --git a/drivers/ide/legacy/hd.c b/drivers/ide/legacy/hd.c index 24c598563bd4..1170c8457066 100644 --- a/drivers/ide/legacy/hd.c +++ b/drivers/ide/legacy/hd.c @@ -838,11 +838,9 @@ static void __init hd_geninit(void) } for(drive=0; drive < NR_HD; drive++) { - add_gendisk(hd_gendisk + drive); - register_disk(hd_gendisk + drive, - mk_kdev(MAJOR_NR,drive<<6), 1<<6, - &hd_fops, hd_info[drive].head * hd_info[drive].sect * - hd_info[drive].cyl); + struct hd_i_struct *p = hd_info + drive; + set_capacity(hd_gendisk + drive, p->head * p->sect * p->cyl); + add_disk(hd_gendisk + drive); } } diff --git a/drivers/md/md.c b/drivers/md/md.c index 5e2b60b76faf..9aea687607d4 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -1466,9 +1466,8 @@ static int do_md_run(mddev_t * mddev) mddev->state &= ~(1 << MD_SB_CLEAN); md_update_sb(mddev); md_recover_arrays(); - add_gendisk(disk); - register_disk(disk, mk_kdev(disk->major,disk->first_minor), - 1, &md_fops, md_size[mdidx(mddev)]<<1); + set_capacity(disk, md_size[mdidx(mddev)]<<1); + add_disk(disk); disks[mdidx(mddev)] = disk; return (0); diff --git a/drivers/message/i2o/i2o_block.c b/drivers/message/i2o/i2o_block.c index ae7befdf574b..23f265d31c51 100644 --- a/drivers/message/i2o/i2o_block.c +++ b/drivers/message/i2o/i2o_block.c @@ -719,11 +719,7 @@ static int i2ob_evt(void *dummy) struct gendisk *p = &i2o_disk[unit>>4]; i2ob_install_device(i2ob_dev[unit].i2odev->controller, i2ob_dev[unit].i2odev, unit); - add_gendisk(p); - register_disk(p, - mk_kdev(p->major, p->first_minor), - 1<<p->minor_shift, p->fops, - get_capacity(p)); + add_disk(p); break; } @@ -1465,12 +1461,7 @@ static void i2ob_scan(int bios) printk(KERN_WARNING "Could not install I2O block device\n"); else { - struct gendisk *p = &i2o_disk[scan_unit>>4]; - add_gendisk(p); - register_disk(p, - mk_kdev(p->major, p->first_minor), - 1<<p->minor_shift, p->fops, - get_capacity(p)); + add_disk(&i2o_disk[scan_unit>>4]); scan_unit+=16; i2ob_dev_count++; @@ -1558,12 +1549,7 @@ void i2ob_new_device(struct i2o_controller *c, struct i2o_device *d) printk(KERN_ERR "i2o_block: Could not install new device\n"); else { - struct gendisk *p = &i2o_disk[unit>>4]; - add_gendisk(p); - register_disk(p, - mk_kdev(p->major, p->first_minor), - 1<<p->minor_shift, p->fops, - get_capacity(p)); + add_disk(&i2o_disk[unit>>4]); i2ob_dev_count++; i2o_device_notify_on(d, &i2o_block_handler); } diff --git a/drivers/mtd/ftl.c b/drivers/mtd/ftl.c index 02f515fbee8d..0f5511fcde45 100644 --- a/drivers/mtd/ftl.c +++ b/drivers/mtd/ftl.c @@ -1252,10 +1252,8 @@ static void ftl_notify_add(struct mtd_info *mtd) partition->state = FTL_FORMATTED; atomic_set(&partition->open, 0); myparts[device] = partition; - add_gendisk(disk); - register_disk(disk, mk_kdev(MAJOR_NR, device << 4), - MAX_PART, &ftl_blk_fops, - le32_to_cpu(partition->header.FormattedSize)/SECTOR_SIZE); + set_capacity(disk, le32_to_cpu(partition->header.FormattedSize)/SECTOR_SIZE); + add_disk(disk); #ifdef PCMCIA_DEBUG printk(KERN_INFO "ftl_cs: opening %d kb FTL partition\n", le32_to_cpu(partition->header.FormattedSize) >> 10); diff --git a/drivers/mtd/mtdblock_ro.c b/drivers/mtd/mtdblock_ro.c index 9b75ccc07f35..1a329064c6a6 100644 --- a/drivers/mtd/mtdblock_ro.c +++ b/drivers/mtd/mtdblock_ro.c @@ -49,9 +49,7 @@ static int mtdblock_open(struct inode *inode, struct file *file) } set_capacit(disk, mtd->size>>9); - add_gendisk(disk); - register_disk(disk, mk_kdev(disk->major, disk->first_minor), - 1<<disk->minor_shift, disk->fops, get_capacity(disk)); + add_disk(disk); DEBUG(1, "ok\n"); diff --git a/drivers/mtd/nftlcore.c b/drivers/mtd/nftlcore.c index f3abf01fd5ba..ce55535534cc 100644 --- a/drivers/mtd/nftlcore.c +++ b/drivers/mtd/nftlcore.c @@ -139,10 +139,9 @@ static void NFTL_setup(struct mtd_info *mtd) gd->first_minor = firstfree << NFTL_PARTN_BITS; gd->minor_shift = NFTL_PARTN_BITS; gd->major_name = name; + set_capacity(gd, nftl->nr_sects); nftl->disk = gd; - add_gendisk(gd); - register_disk(gd, mk_kdev(MAJOR_NR,firstfree<<NFTL_PARTN_BITS), - 1<<NFTL_PARTN_BITS, &nftl_fops, nftl->nr_sects); + add_disk(gd); } static void NFTL_unsetup(int i) diff --git a/drivers/s390/block/dasd_genhd.c b/drivers/s390/block/dasd_genhd.c index 6df129445724..4a069ac4cf12 100644 --- a/drivers/s390/block/dasd_genhd.c +++ b/drivers/s390/block/dasd_genhd.c @@ -259,10 +259,8 @@ dasd_setup_partitions(dasd_device_t * device) struct gendisk *disk = dasd_gendisk_by_dev(device->kdev); if (disk == NULL) return; - add_gendisk(disk); - register_disk(disk, mk_kdev(disk->major, disk->first_minor), - 1<<disk->minor_shift, disk->fops, - device->blocks << device->s2b_shift); + set_capacity(disk, device->blocks << device->s2b_shift); + add_disk(disk); } /* diff --git a/drivers/sbus/char/jsflash.c b/drivers/sbus/char/jsflash.c index a05583f3507d..3ddc11242ecd 100644 --- a/drivers/sbus/char/jsflash.c +++ b/drivers/sbus/char/jsflash.c @@ -641,10 +641,8 @@ static int jsfd_init(void) disk->major_name = names[i]; disk->fops = &jsfd_fops; disk->minor_shift = 0; - add_gendisk(disk); - register_disk(disk, mk_kdev(disk->major, disk->first_minor), - 1<<disk->minor_shift, disk->fops, - jdp->dsize >> 9); + set_capacity(disk, jdp->dsize >> 9); + add_disk(disk); set_device_ro(MKDEV(JSFD_MAJOR, i), 1); } return 0; diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 145e569282ef..7d647021199e 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -1250,10 +1250,8 @@ static void sd_finish() if (sdkp && (0 == sdkp->capacity) && sdkp->device) { sd_init_onedisk(sdkp, k); if (!sdkp->has_been_registered) { - add_gendisk(sd_disks[k]); - register_disk(sd_disks[k], MKDEV_SD(k), - 1<<4, &sd_fops, - sdkp->capacity); + set_capacity(sd_disks[k], sdkp->capacity); + add_disk(sd_disks[k]); sdkp->has_been_registered = 1; } } diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c index da031ba3297b..d3f4bc0da088 100644 --- a/drivers/scsi/sr.c +++ b/drivers/scsi/sr.c @@ -808,9 +808,8 @@ void sr_finish() &dev_attr_kdev); disk->de = cd->device->de; register_cdrom(&cd->cdi); - add_gendisk(disk); - register_disk(disk, mk_kdev(disk->major, disk->first_minor), - 1<<disk->minor_shift, disk->fops, cd->capacity); + set_capacity(disk, cd->capacity); + add_disk(disk); } } diff --git a/include/linux/genhd.h b/include/linux/genhd.h index 8406d1aeaede..8632a84676e0 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h @@ -91,7 +91,7 @@ struct gendisk { }; /* drivers/block/genhd.c */ -extern void add_gendisk(struct gendisk *gp); +extern void add_disk(struct gendisk *disk); extern void del_gendisk(struct gendisk *gp); extern void unlink_gendisk(struct gendisk *gp); extern struct gendisk *get_gendisk(kdev_t dev); |
