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. Changes since v1: - add a patch to refactor bd_may_claim - add a sanity check for mismatching holder ops in bd_may_claim - move partition removal later in del_gendisk so that partitions are still around for the shutdown notification - add SHUTDOWN_DEVICE_REMOVED to XFS_SHUTDOWN_STRINGS Diffstat: block/bdev.c | 159 ++++++++++++++++++++---------------- block/blk.h | 2 block/fops.c | 2 block/genhd.c | 78 +++++++++++++---- block/ioctl.c | 3 block/partitions/core.c | 31 +++---- drivers/block/drbd/drbd_nl.c | 3 drivers/block/loop.c | 2 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 | 4 fs/xfs/xfs_super.c | 21 ++++ include/linux/blk_types.h | 2 include/linux/blkdev.h | 12 ++ include/linux/fs.h | 1 kernel/power/swap.c | 4 mm/swapfile.c | 3 39 files changed, 266 insertions(+), 148 deletions(-)