block: remove the call to __invalidate_device in check_disk_size_change
authorChristoph Hellwig <hch@lst.de>
Mon, 16 Nov 2020 14:56:52 +0000 (15:56 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 16 Nov 2020 15:34:14 +0000 (08:34 -0700)
__invalidate_device without the kill_dirty parameter just invalidates
various clean entries in caches, which doesn't really help us with
anything, but can cause all kinds of horrible lock orders due to how
it calls into the file system.  The only reason this hasn't been a
major issue is because so many people use partitions, for which no
invalidation was performed anyway.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/block_dev.c

index 9e84b19..66ebf59 100644 (file)
@@ -1334,12 +1334,6 @@ static void check_disk_size_change(struct gendisk *disk,
                i_size_write(bdev->bd_inode, disk_size);
        }
        spin_unlock(&bdev->bd_size_lock);
-
-       if (bdev_size > disk_size) {
-               if (__invalidate_device(bdev, false))
-                       pr_warn("VFS: busy inodes on resized disk %s\n",
-                               disk->disk_name);
-       }
 }
 
 /**