cciss: Handle failure of blk_init_queue gracefully in cciss_add_disk.
Handle failure of blk_init_queue gracefully in cciss_add_disk. Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
parent
097d026453
commit
e8074f7977
|
@ -1690,6 +1690,8 @@ static int cciss_add_disk(ctlr_info_t *h, struct gendisk *disk,
|
||||||
int drv_index)
|
int drv_index)
|
||||||
{
|
{
|
||||||
disk->queue = blk_init_queue(do_cciss_request, &h->lock);
|
disk->queue = blk_init_queue(do_cciss_request, &h->lock);
|
||||||
|
if (!disk->queue)
|
||||||
|
goto init_queue_failure;
|
||||||
sprintf(disk->disk_name, "cciss/c%dd%d", h->ctlr, drv_index);
|
sprintf(disk->disk_name, "cciss/c%dd%d", h->ctlr, drv_index);
|
||||||
disk->major = h->major;
|
disk->major = h->major;
|
||||||
disk->first_minor = drv_index << NWD_SHIFT;
|
disk->first_minor = drv_index << NWD_SHIFT;
|
||||||
|
@ -1730,6 +1732,7 @@ static int cciss_add_disk(ctlr_info_t *h, struct gendisk *disk,
|
||||||
cleanup_queue:
|
cleanup_queue:
|
||||||
blk_cleanup_queue(disk->queue);
|
blk_cleanup_queue(disk->queue);
|
||||||
disk->queue = NULL;
|
disk->queue = NULL;
|
||||||
|
init_queue_failure:
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue