Re: [RFC PATCH 14/68] vfs: Convert drm to use the new mount API

From: Daniel Vetter
Date: Thu Mar 28 2019 - 03:47:20 EST


On Wed, Mar 27, 2019 at 11:42:18PM +0000, David Howells wrote:
> Convert the drm filesystem to the new internal mount API as the old
> one will be obsoleted and removed. This allows greater flexibility in
> communication of mount parameters between userspace, the VFS and the
> filesystem.
>
> See Documentation/filesystems/mount_api.txt for more information.
>
> Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
> cc: David Airlie <airlied@xxxxxxxx>
> cc: Daniel Vetter <daniel@xxxxxxxx>
> cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx

No clue about vfs, but feel free to merge through whatever tree this is
suitable for.

Acked-by: Daniel Vetter <daniel.vetter@xxxxxxxx>

> ---
>
> drivers/gpu/drm/drm_drv.c | 14 ++++++--------
> 1 file changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> index 381581b01d48..9eead5a478de 100644
> --- a/drivers/gpu/drm/drm_drv.c
> +++ b/drivers/gpu/drm/drm_drv.c
> @@ -31,6 +31,7 @@
> #include <linux/module.h>
> #include <linux/moduleparam.h>
> #include <linux/mount.h>
> +#include <linux/fs_context.h>
> #include <linux/slab.h>
> #include <linux/srcu.h>
>
> @@ -413,20 +414,17 @@ static const struct super_operations drm_fs_sops = {
> .statfs = simple_statfs,
> };
>
> -static struct dentry *drm_fs_mount(struct file_system_type *fs_type, int flags,
> - const char *dev_name, void *data)
> +static int drm_fs_init_fs_context(struct fs_context *fc)
> {
> - return mount_pseudo(fs_type,
> - "drm:",
> - &drm_fs_sops,
> - &drm_fs_dops,
> - 0x010203ff);
> + return vfs_init_pseudo_fs_context(fc, "drm:",
> + &drm_fs_sops, NULL,
> + &drm_fs_dops, 0x010203ff);
> }
>
> static struct file_system_type drm_fs_type = {
> .name = "drm",
> .owner = THIS_MODULE,
> - .mount = drm_fs_mount,
> + .init_fs_context = drm_fs_init_fs_context,
> .kill_sb = kill_anon_super,
> };
>
>

--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch