diff options
| -rw-r--r-- | block/genhd.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/block/genhd.c b/block/genhd.c index 5a8d3bf02f17..d96572589621 100644 --- a/block/genhd.c +++ b/block/genhd.c | |||
| @@ -182,6 +182,7 @@ static int exact_lock(dev_t dev, void *data) | |||
| 182 | */ | 182 | */ |
| 183 | void add_disk(struct gendisk *disk) | 183 | void add_disk(struct gendisk *disk) |
| 184 | { | 184 | { |
| 185 | get_device(disk->driverfs_dev); | ||
| 185 | disk->flags |= GENHD_FL_UP; | 186 | disk->flags |= GENHD_FL_UP; |
| 186 | blk_register_region(MKDEV(disk->major, disk->first_minor), | 187 | blk_register_region(MKDEV(disk->major, disk->first_minor), |
| 187 | disk->minors, NULL, exact_match, exact_lock, disk); | 188 | disk->minors, NULL, exact_match, exact_lock, disk); |
| @@ -427,6 +428,7 @@ static struct attribute * default_attrs[] = { | |||
| 427 | static void disk_release(struct kobject * kobj) | 428 | static void disk_release(struct kobject * kobj) |
| 428 | { | 429 | { |
| 429 | struct gendisk *disk = to_disk(kobj); | 430 | struct gendisk *disk = to_disk(kobj); |
| 431 | put_device(disk->driverfs_dev); | ||
| 430 | kfree(disk->random); | 432 | kfree(disk->random); |
| 431 | kfree(disk->part); | 433 | kfree(disk->part); |
| 432 | free_disk_stats(disk); | 434 | free_disk_stats(disk); |
