Signed-off-by: David Howells <dhowells@xxxxxxxxxx> cc: Jens Axboe <axboe@xxxxxxxxx> cc: linux-fsdevel@xxxxxxxxxxxxxxx --- fs/block_dev.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/fs/block_dev.c b/fs/block_dev.c index e9faa52bb489..2846970b5415 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -25,6 +25,7 @@ #include <linux/writeback.h> #include <linux/mpage.h> #include <linux/mount.h> +#include <linux/fs_context.h> #include <linux/uio.h> #include <linux/namei.h> #include <linux/log2.h> @@ -842,19 +843,16 @@ static const struct super_operations bdev_sops = { .evict_inode = bdev_evict_inode, }; -static struct dentry *bd_mount(struct file_system_type *fs_type, - int flags, const char *dev_name, void *data) +static int bd_init_fs_context(struct fs_context *fc) { - struct dentry *dent; - dent = mount_pseudo(fs_type, "bdev:", &bdev_sops, NULL, BDEVFS_MAGIC); - if (!IS_ERR(dent)) - dent->d_sb->s_iflags |= SB_I_CGROUPWB; - return dent; + fc->s_iflags |= SB_I_CGROUPWB; + return vfs_init_pseudo_fs_context(fc, "bdev:", + &bdev_sops, NULL, NULL, BDEVFS_MAGIC); } static struct file_system_type bd_type = { .name = "bdev", - .mount = bd_mount, + .init_fs_context = bd_init_fs_context, .kill_sb = kill_anon_super, };