|
@@ -5203,12 +5203,12 @@ static void md_free(struct kobject *ko)
|
|
if (mddev->sysfs_state)
|
|
if (mddev->sysfs_state)
|
|
sysfs_put(mddev->sysfs_state);
|
|
sysfs_put(mddev->sysfs_state);
|
|
|
|
|
|
|
|
+ if (mddev->gendisk)
|
|
|
|
+ del_gendisk(mddev->gendisk);
|
|
if (mddev->queue)
|
|
if (mddev->queue)
|
|
blk_cleanup_queue(mddev->queue);
|
|
blk_cleanup_queue(mddev->queue);
|
|
- if (mddev->gendisk) {
|
|
|
|
- del_gendisk(mddev->gendisk);
|
|
|
|
|
|
+ if (mddev->gendisk)
|
|
put_disk(mddev->gendisk);
|
|
put_disk(mddev->gendisk);
|
|
- }
|
|
|
|
percpu_ref_exit(&mddev->writes_pending);
|
|
percpu_ref_exit(&mddev->writes_pending);
|
|
|
|
|
|
kfree(mddev);
|
|
kfree(mddev);
|