On Thu, Mar 20, 2025 at 09:42:24PM +0100, Pavel Reichl wrote: > Convert the bfs filesystem to use the new mount API. > > Tested using mount and simple writes & reads on ro/rw bfs devices. > > Signed-off-by: Pavel Reichl <preichl@xxxxxxxxxx> Looks good, Reviewed-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx> > --- > fs/bfs/inode.c | 30 +++++++++++++++++++++--------- > 1 file changed, 21 insertions(+), 9 deletions(-) > > diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c > index db81570c9637..1d41ce477df5 100644 > --- a/fs/bfs/inode.c > +++ b/fs/bfs/inode.c > @@ -17,6 +17,7 @@ > #include <linux/writeback.h> > #include <linux/uio.h> > #include <linux/uaccess.h> > +#include <linux/fs_context.h> > #include "bfs.h" > > MODULE_AUTHOR("Tigran Aivazian <aivazian.tigran@xxxxxxxxx>"); > @@ -305,7 +306,7 @@ void bfs_dump_imap(const char *prefix, struct super_block *s) > #endif > } > > -static int bfs_fill_super(struct super_block *s, void *data, int silent) > +static int bfs_fill_super(struct super_block *s, struct fs_context *fc) > { > struct buffer_head *bh, *sbh; > struct bfs_super_block *bfs_sb; > @@ -314,6 +315,7 @@ static int bfs_fill_super(struct super_block *s, void *data, int silent) > struct bfs_sb_info *info; > int ret = -EINVAL; > unsigned long i_sblock, i_eblock, i_eoff, s_size; > + int silent = fc->sb_flags & SB_SILENT; > > info = kzalloc(sizeof(*info), GFP_KERNEL); > if (!info) > @@ -446,18 +448,28 @@ static int bfs_fill_super(struct super_block *s, void *data, int silent) > return ret; > } > > -static struct dentry *bfs_mount(struct file_system_type *fs_type, > - int flags, const char *dev_name, void *data) > +static int bfs_get_tree(struct fs_context *fc) > { > - return mount_bdev(fs_type, flags, dev_name, data, bfs_fill_super); > + return get_tree_bdev(fc, bfs_fill_super); > +} > + > +static const struct fs_context_operations bfs_context_ops = { > + .get_tree = bfs_get_tree, > +}; > + > +static int bfs_init_fs_context(struct fs_context *fc) > +{ > + fc->ops = &bfs_context_ops; > + > + return 0; > } > > static struct file_system_type bfs_fs_type = { > - .owner = THIS_MODULE, > - .name = "bfs", > - .mount = bfs_mount, > - .kill_sb = kill_block_super, > - .fs_flags = FS_REQUIRES_DEV, > + .owner = THIS_MODULE, > + .name = "bfs", > + .init_fs_context = bfs_init_fs_context, > + .kill_sb = kill_block_super, > + .fs_flags = FS_REQUIRES_DEV, > }; > MODULE_ALIAS_FS("bfs"); > > -- > 2.49.0 > >