diff options
author | Christoph Hellwig <hch@lst.de> | 2021-06-24 14:32:39 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2021-06-24 12:01:06 -0600 |
commit | 630161cfdf5cdc696a82b59410d1ff00b23d946e (patch) | |
tree | d84d056d9038e311454ca852b8da9057a3a5173b /fs/block_dev.c | |
parent | 2bc8cda5ea4b42ff78be1b11011092d57b424d37 (diff) |
block: move bdev_disk_changed
Move bdev_disk_changed to block/partitions/core.c, together with the
rest of the partition scanning code.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20210624123240.441814-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/block_dev.c')
-rw-r--r-- | fs/block_dev.c | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/fs/block_dev.c b/fs/block_dev.c index ac9b3c158a77..5b3a73ecb696 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -1242,59 +1242,6 @@ static void blkdev_flush_mapping(struct block_device *bdev) bdev_write_inode(bdev); } -int bdev_disk_changed(struct block_device *bdev, bool invalidate) -{ - struct gendisk *disk = bdev->bd_disk; - int ret = 0; - - lockdep_assert_held(&disk->open_mutex); - - if (!(disk->flags & GENHD_FL_UP)) - return -ENXIO; - -rescan: - if (disk->open_partitions) - return -EBUSY; - sync_blockdev(bdev); - invalidate_bdev(bdev); - blk_drop_partitions(disk); - - clear_bit(GD_NEED_PART_SCAN, &disk->state); - - /* - * Historically we only set the capacity to zero for devices that - * support partitions (independ of actually having partitions created). - * Doing that is rather inconsistent, but changing it broke legacy - * udisks polling for legacy ide-cdrom devices. Use the crude check - * below to get the sane behavior for most device while not breaking - * userspace for this particular setup. - */ - if (invalidate) { - if (disk_part_scan_enabled(disk) || - !(disk->flags & GENHD_FL_REMOVABLE)) - set_capacity(disk, 0); - } - - if (get_capacity(disk)) { - ret = blk_add_partitions(disk, bdev); - if (ret == -EAGAIN) - goto rescan; - } else if (invalidate) { - /* - * Tell userspace that the media / partition table may have - * changed. - */ - kobject_uevent(&disk_to_dev(disk)->kobj, KOBJ_CHANGE); - } - - return ret; -} -/* - * Only exported for loop and dasd for historic reasons. Don't use in new - * code! - */ -EXPORT_SYMBOL_GPL(bdev_disk_changed); - static int blkdev_get_whole(struct block_device *bdev, fmode_t mode) { struct gendisk *disk = bdev->bd_disk; |