On Thu, Feb 09, 2017 at 01:44:24PM +0100, Jan Kara wrote:
> Move bdev_unhash_inode() after invalidate_partition() as
> invalidate_partition() looks up bdev and will unnecessarily recreate it
> if bdev_unhash_inode() destroyed it. Also use part_devt() when calling
> bdev_unhash_inode() instead of manually creating the device number.
> 
> Signed-off-by: Jan Kara <[email protected]>

Acked-by: Tejun Heo <[email protected]>

> @@ -648,9 +648,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);

So, before this patch, invalidate_partition() would have operated on a
newly created inode and thus wouldn't have actually invalidated the
existing bdev / mapping, right?

Thanks.

-- 
tejun

Reply via email to