diff --git a/block/genhd.c b/block/genhd.c index b5820cf94b5d2c9775ff100c1510549bf7eda716..a906426b5f4fd84de9dc62b89047c2363afccb36 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -783,8 +783,10 @@ void del_gendisk(struct gendisk *disk) delete_partition(disk, part->partno); } disk_part_iter_exit(&piter); - if (bdev) + if (bdev) { mutex_unlock(&bdev->bd_mutex); + bdput(bdev); + } invalidate_partition(disk, 0); bdev_unhash_inode(disk_devt(disk));