diff options
author | Christoph Hellwig <hch@lst.de> | 2023-08-11 12:08:24 +0200 |
---|---|---|
committer | Christian Brauner <brauner@kernel.org> | 2023-08-21 14:35:31 +0200 |
commit | 560e20e4bf6484a0c12f9f3c7a1aa55056948e1e (patch) | |
tree | 5ab5a370c9ef1622f2c5711d75dd47e69d9a7dfa /block/genhd.c | |
parent | 127a5093c79d9cdea9e6edc016ab346e6dd16c23 (diff) | |
download | linux-560e20e4bf6484a0c12f9f3c7a1aa55056948e1e.tar.gz linux-560e20e4bf6484a0c12f9f3c7a1aa55056948e1e.tar.bz2 linux-560e20e4bf6484a0c12f9f3c7a1aa55056948e1e.zip |
block: consolidate __invalidate_device and fsync_bdev
We currently have two interfaces that take a block_devices and the find
a mounted file systems to flush or invaldidate data on it. Both are a
bit problematic because they only work for the "main" block devices
that is used as s_dev for the super_block, and because they don't call
into the file system at all.
Merge the two into a new bdev_mark_dead helper that does both the
syncing and invalidation and which is properly documented. This is
in preparation of merging the functionality into the ->mark_dead
holder operation so that it will work on additional block devices
used by a file systems and give us a single entry point for invalidation
of dead devices or media.
Note that a single standalone fsync_bdev call for an obscure ioctl
remains for now, but that one will also be deal with in a bit.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Message-Id: <20230811100828.1897174-14-hch@lst.de>
Signed-off-by: Christian Brauner <brauner@kernel.org>
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 3d287b32d50d..afc2cb09eb94 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -647,8 +647,7 @@ void del_gendisk(struct gendisk *disk) mutex_lock(&disk->open_mutex); xa_for_each(&disk->part_tbl, idx, part) { remove_inode_hash(part->bd_inode); - fsync_bdev(part); - __invalidate_device(part, true); + bdev_mark_dead(part, false); } mutex_unlock(&disk->open_mutex); |