 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);

_
