On Fri, May 25, 2018 at 01:07:27AM +0100, David Howells wrote:
> +     inode = alloc_anon_inode(fscontext_fs_mnt->mnt_sb);
> +     if (IS_ERR(inode))
> +             return ERR_CAST(inode);
> +     inode->i_fop = &fscontext_fs_fops;

That's almost certainly wrong - you need it only if you want it possible to
reopen via /proc/*/fd/*

> +     fc->phase = FS_CONTEXT_CREATE_PARAMS;
> +
> +     ret = -ENOMEM;
> +     path.dentry = d_alloc_pseudo(fscontext_fs_mnt->mnt_sb, &empty_name);
> +     if (!path.dentry)
> +             goto err_inode;
> +     path.mnt = mntget(fscontext_fs_mnt);
> +
> +     d_instantiate(path.dentry, inode);
> +
> +     f = alloc_file(&path, FMODE_READ | FMODE_WRITE, &fscontext_fs_fops);

Re your question on IRC - we might want that fs in longer run, but for now
just go with anon_inode_getfile() here.  Easier that way and we can always
switch later.

Reply via email to