more blkdev_get and holder work

Christoph Hellwig
2023-08-02T15:41:52Z

Hi all,

this series sits on top of the vfs.super branch in the VFS tree and does a
few closely related things:

1) it also converts nilfs2 and btrfs to the new scheme where the file system
only opens the block devices after we know that a new super_block was
allocated.
2) it then makes sure that for all file system openers the super_block is
stored in bd_holder, and makes use of that fact in the mark_dead method
so that it doesn't have to fall get_super and thus can also work on
block devices that sb->s_bdev doesn't point to
3) it then drops the fs-specific holder ops in ext4 and xfs and uses the
generic fs_holder_ops there

A git tree is available here:

git://git.infradead.org/users/hch/misc.git fs-holder-rework

Gitweb:

http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/fs-holder-rework

Diffstat:
fs/btrfs/super.c | 67 ++++++++++++++++---------------------
fs/btrfs/volumes.c | 8 ++--
fs/btrfs/volumes.h | 2 -
fs/ext4/super.c | 18 +++-------
fs/f2fs/super.c | 7 +--
fs/nilfs2/super.c | 81 ++++++++++++++++-----------------------------
fs/super.c | 44 ++++++++++++++++++------
fs/xfs/xfs_super.c | 32 +++++++----------
include/linux/blkdev.h | 2 +
include/linux/fs_context.h | 2 +
10 files changed, 126 insertions(+), 137 deletions(-)