block: fix add_partition() error path
Tejun Heo [Mon, 10 Nov 2008 06:28:59 +0000 (15:28 +0900)]
Partition stats structure was not freed on devt allocation failure
path.  Fix it.

Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

fs/partitions/check.c

index 633f7a0..90bcf13 100644 (file)
@@ -395,7 +395,7 @@ int add_partition(struct gendisk *disk, int partno,
 
        err = blk_alloc_devt(p, &devt);
        if (err)
-               goto out_free;
+               goto out_free_stats;
        pdev->devt = devt;
 
        /* delay uevent until 'holders' subdir is created */
@@ -426,6 +426,8 @@ int add_partition(struct gendisk *disk, int partno,
 
        return 0;
 
+out_free_stats:
+       free_part_stats(p);
 out_free:
        kfree(p);
        return err;