Re: [PATCH] bfs: convert bfs to use the new mount api

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux