> /** > - * add_disk - add partitioning information to kernel list > + * device_add_disk - add partitioning information to kernel list > + * @parent: parent device for the disk > * @disk: per-device partitioning information > * > * This function registers the partitioning information in @disk > @@ -581,7 +582,7 @@ exit: > * > * FIXME: error handling > */ > -void add_disk(struct gendisk *disk) > +int device_add_disk(struct device *parent, struct gendisk *disk) > { > struct backing_dev_info *bdi; > dev_t devt; > @@ -597,10 +598,8 @@ void add_disk(struct gendisk *disk) > disk->flags |= GENHD_FL_UP; > > retval = blk_alloc_devt(&disk->part0, &devt); > - if (retval) { > - WARN_ON(1); > - return; > - } > + if (retval) > + return retval; > disk_to_dev(disk)->devt = devt; > > /* ->major and ->first_minor aren't supposed to be > @@ -617,7 +616,7 @@ void add_disk(struct gendisk *disk) > > blk_register_region(disk_devt(disk), disk->minors, NULL, > exact_match, exact_lock, disk); > - register_disk(disk); > + register_disk(parent, disk); > blk_register_queue(disk); > > /* > @@ -628,12 +627,11 @@ void add_disk(struct gendisk *disk) > > retval = sysfs_create_link(&disk_to_dev(disk)->kobj, &bdi->dev->kobj, > "bdi"); > - WARN_ON(retval); > - > disk_add_events(disk); > blk_integrity_add(disk); > + return retval; How are the callers expected to unwind after already having added the disk? -- To unsubscribe from this list: send the line "unsubscribe linux-block" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html