summaryrefslogtreecommitdiffstats
path: root/block/genhd.c
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2017-02-21 18:09:47 +0100
committerJens Axboe <axboe@fb.com>2017-02-21 12:51:54 -0700
commitd06e05c026ab58121dc6ab37c11f855ff642531e (patch)
tree3f42cd9cb8510ff484430a25ba471223d1496252 /block/genhd.c
parent4b8c861a7c79806fb9ee564c87f517dc26fc2d1e (diff)
downloadlinux-0-day-d06e05c026ab58121dc6ab37c11f855ff642531e.tar.gz
block: Unhash also block device inode for the whole device
Iteration over partitions in del_gendisk() omits part0. Add bdev_unhash_inode() call for the whole device. Otherwise if the device number gets reused, bdev inode will be still associated with the old (stale) bdi. Tested-by: Lekshmi Pillai <lekshmicpillai@in.ibm.com> Acked-by: Tejun Heo <tj@kernel.org> Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block/genhd.c')
-rw-r--r--block/genhd.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/block/genhd.c b/block/genhd.c
index 15b3c18..2f444b8 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -676,6 +676,7 @@ void del_gendisk(struct gendisk *disk)
disk_part_iter_exit(&piter);
invalidate_partition(disk, 0);
+ bdev_unhash_inode(disk_devt(disk));
set_capacity(disk, 0);
disk->flags &= ~GENHD_FL_UP;