Merge tag 'md-3.9-fixes' of git://neil.brown.name/md
[platform/adaptation/renesas_rcar/renesas_kernel.git] / block / partition-generic.c
index f1d1451..789cdea 100644 (file)
@@ -249,11 +249,11 @@ void delete_partition(struct gendisk *disk, int partno)
        if (!part)
                return;
 
-       blk_free_devt(part_devt(part));
        rcu_assign_pointer(ptbl->part[partno], NULL);
        rcu_assign_pointer(ptbl->last_lookup, NULL);
        kobject_put(part->holder_dir);
        device_del(part_to_dev(part));
+       blk_free_devt(part_devt(part));
 
        hd_struct_put(part);
 }
@@ -418,7 +418,7 @@ int rescan_partitions(struct gendisk *disk, struct block_device *bdev)
        int p, highest, res;
 rescan:
        if (state && !IS_ERR(state)) {
-               kfree(state);
+               free_partitions(state);
                state = NULL;
        }
 
@@ -525,7 +525,7 @@ rescan:
                        md_autodetect_dev(part_to_dev(part)->devt);
 #endif
        }
-       kfree(state);
+       free_partitions(state);
        return 0;
 }