diff options
author | Jan Kara <jack@suse.cz> | 2017-02-21 18:09:46 +0100 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2017-02-21 20:51:54 +0100 |
commit | 4b8c861a7c79806fb9ee564c87f517dc26fc2d1e (patch) | |
tree | 03b4bd4acc1fa2eec199cf5d53928eb6c41639bb /block/genhd.c | |
parent | nbd: cleanup workqueue on error properly (diff) | |
download | linux-4b8c861a7c79806fb9ee564c87f517dc26fc2d1e.tar.xz linux-4b8c861a7c79806fb9ee564c87f517dc26fc2d1e.zip |
block: Move bdev_unhash_inode() after invalidate_partition()
Move bdev_unhash_inode() after invalidate_partition() as
invalidate_partition() looks up bdev and it cannot find the right bdev
inode after bdev_unhash_inode() is called. Thus invalidate_partition()
would not invalidate page cache of the previously used bdev. Also use
part_devt() when calling bdev_unhash_inode() instead of manually
creating the device number.
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.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/block/genhd.c b/block/genhd.c index 3631cd480295..15b3c18d8337 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -669,9 +669,8 @@ void del_gendisk(struct gendisk *disk) disk_part_iter_init(&piter, disk, DISK_PITER_INCL_EMPTY | DISK_PITER_REVERSE); while ((part = disk_part_iter_next(&piter))) { - bdev_unhash_inode(MKDEV(disk->major, - disk->first_minor + part->partno)); invalidate_partition(disk, part->partno); + bdev_unhash_inode(part_devt(part)); delete_partition(disk, part->partno); } disk_part_iter_exit(&piter); |