diff --git a/block/partition-generic.c b/block/partition-generic.c index 298c05f8b5e3..434c122cb958 100644 --- a/block/partition-generic.c +++ b/block/partition-generic.c @@ -254,6 +254,7 @@ void delete_partition(struct gendisk *disk, int partno) { struct disk_part_tbl *ptbl = disk->part_tbl; struct hd_struct *part; + struct block_device *bdev; if (partno >= ptbl->len) return; @@ -267,6 +268,11 @@ void delete_partition(struct gendisk *disk, int partno) kobject_put(part->holder_dir); device_del(part_to_dev(part)); + bdev = bdget(part_devt(part)); + if (bdev) { + remove_inode_hash(bdev->bd_inode); + bdput(bdev); + } hd_struct_kill(part); }