drivers/acorn/block/fd1772.c | 2 +- drivers/block/amiflop.c | 2 +- drivers/block/ataflop.c | 2 +- drivers/block/floppy.c | 2 +- drivers/block/floppy98.c | 2 +- drivers/block/genhd.c | 29 +++++++++++++++-------------- drivers/block/z2ram.c | 2 +- drivers/ide/ide-probe.c | 2 +- drivers/md/md.c | 2 +- drivers/mtd/nftlcore.c | 2 +- include/linux/genhd.h | 4 ++-- 11 files changed, 26 insertions(+), 25 deletions(-) diff -puN drivers/acorn/block/fd1772.c~T27-kobject-C69 drivers/acorn/block/fd1772.c --- 25/drivers/acorn/block/fd1772.c~T27-kobject-C69 2003-05-05 22:37:55.000000000 -0700 +++ 25-akpm/drivers/acorn/block/fd1772.c 2003-05-05 22:37:55.000000000 -0700 @@ -1513,7 +1513,7 @@ static struct block_device_operations fl .revalidate_disk= floppy_revalidate, }; -static struct gendisk *floppy_find(dev_t dev, int *part, void *data) +static struct kobject *floppy_find(dev_t dev, int *part, void *data) { int drive = *part & 3; if ((*part >> 2) > NUM_DISK_TYPES || drive >= FD_MAX_UNITS) diff -puN drivers/block/amiflop.c~T27-kobject-C69 drivers/block/amiflop.c --- 25/drivers/block/amiflop.c~T27-kobject-C69 2003-05-05 22:37:55.000000000 -0700 +++ 25-akpm/drivers/block/amiflop.c 2003-05-05 22:37:55.000000000 -0700 @@ -1728,7 +1728,7 @@ static int __init fd_probe_drives(void) return -ENOMEM; } -static struct gendisk *floppy_find(dev_t dev, int *part, void *data) +static struct kobject *floppy_find(dev_t dev, int *part, void *data) { int drive = *part & 3; if (unit[drive].type->code == FD_NODRIVE) diff -puN drivers/block/ataflop.c~T27-kobject-C69 drivers/block/ataflop.c --- 25/drivers/block/ataflop.c~T27-kobject-C69 2003-05-05 22:37:55.000000000 -0700 +++ 25-akpm/drivers/block/ataflop.c 2003-05-05 22:37:55.000000000 -0700 @@ -1895,7 +1895,7 @@ static struct block_device_operations fl .revalidate_disk= floppy_revalidate, }; -static struct gendisk *floppy_find(dev_t dev, int *part, void *data) +static struct kobject *floppy_find(dev_t dev, int *part, void *data) { int drive = *part & 3; int type = *part >> 2; diff -puN drivers/block/floppy98.c~T27-kobject-C69 drivers/block/floppy98.c --- 25/drivers/block/floppy98.c~T27-kobject-C69 2003-05-05 22:37:55.000000000 -0700 +++ 25-akpm/drivers/block/floppy98.c 2003-05-05 22:37:55.000000000 -0700 @@ -4246,7 +4246,7 @@ static struct platform_device floppy_dev }, }; -static struct gendisk *floppy_find(dev_t dev, int *part, void *data) +static struct kobject *floppy_find(dev_t dev, int *part, void *data) { int drive = (*part&3) | ((*part&0x80) >> 5); if (drive >= N_DRIVE || diff -puN drivers/block/floppy.c~T27-kobject-C69 drivers/block/floppy.c --- 25/drivers/block/floppy.c~T27-kobject-C69 2003-05-05 22:37:55.000000000 -0700 +++ 25-akpm/drivers/block/floppy.c 2003-05-05 22:37:55.000000000 -0700 @@ -4212,7 +4212,7 @@ static struct platform_device floppy_dev }, }; -static struct gendisk *floppy_find(dev_t dev, int *part, void *data) +static struct kobject *floppy_find(dev_t dev, int *part, void *data) { int drive = (*part&3) | ((*part&0x80) >> 5); if (drive >= N_DRIVE || diff -puN drivers/block/genhd.c~T27-kobject-C69 drivers/block/genhd.c --- 25/drivers/block/genhd.c~T27-kobject-C69 2003-05-05 22:37:55.000000000 -0700 +++ 25-akpm/drivers/block/genhd.c 2003-05-05 22:37:55.000000000 -0700 @@ -36,7 +36,7 @@ static struct blk_probe { dev_t dev; unsigned long range; struct module *owner; - struct gendisk *(*get)(dev_t dev, int *part, void *data); + struct kobject *(*get)(dev_t dev, int *part, void *data); int (*lock)(dev_t, void *); void *data; } *probes[MAX_PROBE_HASH]; @@ -162,7 +162,7 @@ int unregister_blkdev(unsigned int major * The hash chain is sorted on range, so that subranges can override. */ void blk_register_region(dev_t dev, unsigned long range, struct module *module, - struct gendisk *(*probe)(dev_t, int *, void *), + struct kobject *(*probe)(dev_t, int *, void *), int (*lock)(dev_t, void *), void *data) { int index = dev_to_index(dev); @@ -206,9 +206,10 @@ void blk_unregister_region(dev_t dev, un EXPORT_SYMBOL(blk_register_region); EXPORT_SYMBOL(blk_unregister_region); -static struct gendisk *exact_match(dev_t dev, int *part, void *data) +static struct kobject *exact_match(dev_t dev, int *part, void *data) { - return data; + struct gendisk *p = data; + return &p->kobj; } static int exact_lock(dev_t dev, void *data) @@ -246,6 +247,8 @@ void unlink_gendisk(struct gendisk *disk disk->minors); } +#define to_disk(obj) container_of(obj,struct gendisk,kobj) + /** * get_gendisk - get partitioning information for a given device * @dev: device to get partitioning information for @@ -257,14 +260,14 @@ struct gendisk * get_gendisk(dev_t dev, int *part) { int index = dev_to_index(dev); - struct gendisk *disk; + struct kobject *kobj; struct blk_probe *p; unsigned best = ~0U; retry: down_read(&block_subsys.rwsem); for (p = probes[index]; p; p = p->next) { - struct gendisk *(*probe)(dev_t, int *, void *); + struct kobject *(*probe)(dev_t, int *, void *); struct module *owner; void *data; @@ -284,11 +287,11 @@ retry: continue; } up_read(&block_subsys.rwsem); - disk = probe(dev, part, data); + kobj = probe(dev, part, data); /* Currently ->owner protects _only_ ->probe() itself. */ module_put(owner); - if (disk) - return disk; + if (kobj) + return to_disk(kobj); goto retry; /* this terminates: best decreases */ } up_read(&block_subsys.rwsem); @@ -365,7 +368,7 @@ struct seq_operations partitions_op = { extern int blk_dev_init(void); -static struct gendisk *base_probe(dev_t dev, int *part, void *data) +static struct kobject *base_probe(dev_t dev, int *part, void *data) { char name[30]; sprintf(name, "block-major-%d", MAJOR(dev)); @@ -396,8 +399,6 @@ subsys_initcall(device_init); * kobject & sysfs bindings for block devices */ -#define to_disk(obj) container_of(obj,struct gendisk,kobj) - struct disk_attribute { struct attribute attr; ssize_t (*show)(struct gendisk *, char *); @@ -634,7 +635,7 @@ struct gendisk *alloc_disk(int minors) return disk; } -struct gendisk *get_disk(struct gendisk *disk) +struct kobject *get_disk(struct gendisk *disk) { struct module *owner; struct kobject *kobj; @@ -649,7 +650,7 @@ struct gendisk *get_disk(struct gendisk module_put(owner); return NULL; } - return to_disk(kobj); + return kobj; } diff -puN drivers/block/z2ram.c~T27-kobject-C69 drivers/block/z2ram.c --- 25/drivers/block/z2ram.c~T27-kobject-C69 2003-05-05 22:37:55.000000000 -0700 +++ 25-akpm/drivers/block/z2ram.c 2003-05-05 22:37:55.000000000 -0700 @@ -322,7 +322,7 @@ static struct block_device_operations z2 .release = z2_release, }; -static struct gendisk *z2_find(dev_t dev, int *part, void *data) +static struct kobject *z2_find(dev_t dev, int *part, void *data) { *part = 0; return get_disk(z2ram_gendisk); diff -puN drivers/ide/ide-probe.c~T27-kobject-C69 drivers/ide/ide-probe.c --- 25/drivers/ide/ide-probe.c~T27-kobject-C69 2003-05-05 22:37:55.000000000 -0700 +++ 25-akpm/drivers/ide/ide-probe.c 2003-05-05 22:37:55.000000000 -0700 @@ -1223,7 +1223,7 @@ static int ata_lock(dev_t dev, void *dat return 0; } -struct gendisk *ata_probe(dev_t dev, int *part, void *data) +struct kobject *ata_probe(dev_t dev, int *part, void *data) { ide_hwif_t *hwif = data; int unit = *part >> PARTN_BITS; diff -puN drivers/md/md.c~T27-kobject-C69 drivers/md/md.c --- 25/drivers/md/md.c~T27-kobject-C69 2003-05-05 22:37:55.000000000 -0700 +++ 25-akpm/drivers/md/md.c 2003-05-05 22:37:55.000000000 -0700 @@ -1438,7 +1438,7 @@ abort: } -static struct gendisk *md_probe(dev_t dev, int *part, void *data) +static struct kobject *md_probe(dev_t dev, int *part, void *data) { static DECLARE_MUTEX(disks_sem); int unit = MINOR(dev); diff -puN drivers/mtd/nftlcore.c~T27-kobject-C69 drivers/mtd/nftlcore.c --- 25/drivers/mtd/nftlcore.c~T27-kobject-C69 2003-05-05 22:37:55.000000000 -0700 +++ 25-akpm/drivers/mtd/nftlcore.c 2003-05-05 22:37:55.000000000 -0700 @@ -862,7 +862,7 @@ void nftl_request(struct request_queue * } } -static struct gendisk *nftl_probe(dev_t dev, int *part, void *data) +static struct kobject *nftl_probe(dev_t dev, int *part, void *data) { request_module("docprobe"); return NULL; diff -puN include/linux/genhd.h~T27-kobject-C69 include/linux/genhd.h --- 25/include/linux/genhd.h~T27-kobject-C69 2003-05-05 22:37:55.000000000 -0700 +++ 25-akpm/include/linux/genhd.h 2003-05-05 22:37:55.000000000 -0700 @@ -365,12 +365,12 @@ extern void add_partition(struct gendisk extern void delete_partition(struct gendisk *, int); extern struct gendisk *alloc_disk(int minors); -extern struct gendisk *get_disk(struct gendisk *disk); +extern struct kobject *get_disk(struct gendisk *disk); extern void put_disk(struct gendisk *disk); extern void blk_register_region(dev_t dev, unsigned long range, struct module *module, - struct gendisk *(*probe)(dev_t, int *, void *), + struct kobject *(*probe)(dev_t, int *, void *), int (*lock)(dev_t, void *), void *data); extern void blk_unregister_region(dev_t dev, unsigned long range); _