Signed-off-by: David Howells <dhowells@xxxxxxxxxx> cc: Minchan Kim <minchan@xxxxxxxxxx> cc: Nitin Gupta <ngupta@xxxxxxxxxx> cc: Sergey Senozhatsky <sergey.senozhatsky.work@xxxxxxxxx> cc: linux-mm@xxxxxxxxx --- mm/zsmalloc.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index 0787d33b80d8..02bfc7f70fab 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -52,6 +52,7 @@ #include <linux/zsmalloc.h> #include <linux/zpool.h> #include <linux/mount.h> +#include <linux/fs_context.h> #include <linux/migrate.h> #include <linux/pagemap.h> #include <linux/fs.h> @@ -1814,19 +1815,21 @@ static void lock_zspage(struct zspage *zspage) } while ((page = get_next_page(page)) != NULL); } -static struct dentry *zs_mount(struct file_system_type *fs_type, - int flags, const char *dev_name, void *data) -{ - static const struct dentry_operations ops = { - .d_dname = simple_dname, - }; +static const struct dentry_operations zs_dentry_operations = { + .d_dname = simple_dname, +}; - return mount_pseudo(fs_type, "zsmalloc:", NULL, &ops, ZSMALLOC_MAGIC); + +static int zs_init_fs_context(struct fs_context *fc) +{ + return vfs_init_pseudo_fs_context(fc, "zsmalloc:", + NULL, NULL, + &zs_dentry_operations, ZSMALLOC_MAGIC); } static struct file_system_type zsmalloc_fs = { .name = "zsmalloc", - .mount = zs_mount, + .init_fs_context = zs_init_fs_context, .kill_sb = kill_anon_super, };