xen-blkfront: plug device number leak in xlblk_init() error path

... though after a failed xenbus_register_frontend() all may be lost.

Acked-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
This commit is contained in:
Laszlo Ersek 2011-10-07 21:34:38 +02:00 committed by Konrad Rzeszutek Wilk
parent d11e615830
commit 469738e675

View File

@ -1450,6 +1450,8 @@ static struct xenbus_driver blkfront = {
static int __init xlblk_init(void)
{
int ret;
if (!xen_domain())
return -ENODEV;
@ -1459,7 +1461,13 @@ static int __init xlblk_init(void)
return -ENODEV;
}
return xenbus_register_frontend(&blkfront);
ret = xenbus_register_frontend(&blkfront);
if (ret) {
unregister_blkdev(XENVBD_MAJOR, DEV_NAME);
return ret;
}
return 0;
}
module_init(xlblk_init);