Re: [PATCH 1/3] block: introduce device_add_disk()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>  /**
> - * 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



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux