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(-)