From ff90c6836b1f02044151352364303f1b604b04f6 Mon Sep 17 00:00:00 2001 From: Sven Wegener Date: Wed, 20 Aug 2008 14:09:07 -0700 Subject: [PATCH] --- yaml --- r: 108939 b: refs/heads/master c: f3944d61ddc65722539ffd7b6f5b7c7217c136cc h: refs/heads/master i: 108937: db0ad1e2cd932b067b8d5f4cb511ce1811c179f7 108935: 164eb830d199e633a1ef51bed837f0352b61a12a v: v3 --- [refs] | 2 +- trunk/drivers/block/nbd.c | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index eafe4c3c614d..622f013e95d7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 759f9a2df78d2156a2675edc7999fb4c919a3159 +refs/heads/master: f3944d61ddc65722539ffd7b6f5b7c7217c136cc diff --git a/trunk/drivers/block/nbd.c b/trunk/drivers/block/nbd.c index ad98dda6037d..1778e4a2c672 100644 --- a/trunk/drivers/block/nbd.c +++ b/trunk/drivers/block/nbd.c @@ -707,15 +707,15 @@ static int __init nbd_init(void) BUILD_BUG_ON(sizeof(struct nbd_request) != 28); - nbd_dev = kcalloc(nbds_max, sizeof(*nbd_dev), GFP_KERNEL); - if (!nbd_dev) - return -ENOMEM; - if (max_part < 0) { printk(KERN_CRIT "nbd: max_part must be >= 0\n"); return -EINVAL; } + nbd_dev = kcalloc(nbds_max, sizeof(*nbd_dev), GFP_KERNEL); + if (!nbd_dev) + return -ENOMEM; + part_shift = 0; if (max_part > 0) part_shift = fls(max_part); @@ -779,6 +779,7 @@ static int __init nbd_init(void) blk_cleanup_queue(nbd_dev[i].disk->queue); put_disk(nbd_dev[i].disk); } + kfree(nbd_dev); return err; } @@ -795,6 +796,7 @@ static void __exit nbd_cleanup(void) } } unregister_blkdev(NBD_MAJOR, "nbd"); + kfree(nbd_dev); printk(KERN_INFO "nbd: unregistered device at major %d\n", NBD_MAJOR); }