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 9e84b1928b9401d0eee5057e5c09e72473e649d0..66ebf594c97f4765ef07c3f0b865c7aac451222e 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);
-       }
 }
 
 /**