diff options
Diffstat (limited to 'block/genhd.c')
-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); |