introduce bdev holder ops and a file system shutdown method
From: | Christoph Hellwig <hch-AT-lst.de> | |
To: | Jens Axboe <axboe-AT-kernel.dk> | |
Subject: | introduce bdev holder ops and a file system shutdown method | |
Date: | Fri, 05 May 2023 13:51:23 -0400 | |
Message-ID: | <20230505175132.2236632-1-hch@lst.de> | |
Cc: | Al Viro <viro-AT-zeniv.linux.org.uk>, Christian Brauner <brauner-AT-kernel.org>, "Darrick J. Wong" <djwong-AT-kernel.org>, linux-block-AT-vger.kernel.org, linux-fsdevel-AT-vger.kernel.org, linux-xfs-AT-vger.kernel.org | |
Archive-link: | Article |
Hi all, this series fixes the long standing problem that we never had a good way to communicate block device events to the user of the block device. It fixes this by introducing a new set of holder ops registered at blkdev_get_by_* time for the exclusive holder, and then wire that up to a shutdown super operation to report the block device remove to the file systems. Diffstat: block/bdev.c | 106 ++++++++++++++++++++---------------- block/fops.c | 2 block/genhd.c | 57 +++++++++++++------ block/ioctl.c | 3 - drivers/block/drbd/drbd_nl.c | 3 - drivers/block/pktcdvd.c | 5 + drivers/block/rnbd/rnbd-srv.c | 2 drivers/block/xen-blkback/xenbus.c | 2 drivers/block/zram/zram_drv.c | 2 drivers/md/bcache/super.c | 2 drivers/md/dm.c | 2 drivers/md/md.c | 2 drivers/mtd/devices/block2mtd.c | 4 - drivers/nvme/target/io-cmd-bdev.c | 2 drivers/s390/block/dasd_genhd.c | 2 drivers/target/target_core_iblock.c | 2 drivers/target/target_core_pscsi.c | 3 - fs/btrfs/dev-replace.c | 2 fs/btrfs/volumes.c | 6 +- fs/erofs/super.c | 2 fs/ext4/super.c | 3 - fs/f2fs/super.c | 4 - fs/jfs/jfs_logmgr.c | 2 fs/nfs/blocklayout/dev.c | 5 + fs/nilfs2/super.c | 2 fs/ocfs2/cluster/heartbeat.c | 2 fs/reiserfs/journal.c | 5 + fs/super.c | 21 ++++++- fs/xfs/xfs_fsops.c | 3 + fs/xfs/xfs_mount.h | 1 fs/xfs/xfs_super.c | 21 ++++++- include/linux/blk_types.h | 2 include/linux/blkdev.h | 9 ++- include/linux/fs.h | 1 kernel/power/swap.c | 4 - mm/swapfile.c | 3 - 36 files changed, 196 insertions(+), 103 deletions(-)