From: David Howells <dhowells@redhat.com>
To: Andrei Vagin <avagin@virtuozzo.com>
Cc: dhowells@redhat.com, viro@zeniv.linux.org.uk,
linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-security-module@vger.kernel.org,
linux-fsdevel@vger.kernel.org, linux-afs@lists.infradead.org
Subject: Re: [12/24] proc: Add fs_context support to procfs [ver #7]
Date: Tue, 26 Jun 2018 09:57:07 +0100 [thread overview]
Message-ID: <31831.1530003427@warthog.procyon.org.uk> (raw)
In-Reply-To: <20180626072736.GA31860@outlook.office365.com>
Andrei Vagin <avagin@virtuozzo.com> wrote:
> > > > - mnt = kern_mount_data(&proc_fs_type, ns, 0);
> >
> > Here ns->user_ns and get_current_cred()->user_ns are not always equal
>
> What do you think about the attached patch?
> ...
> - fc = vfs_new_fs_context(&proc_fs_type, NULL, 0,
> - FS_CONTEXT_FOR_KERNEL_MOUNT);
> + fc = vfs_new_fs_context_userns(&proc_fs_type, NULL, 0,
> + FS_CONTEXT_FOR_KERNEL_MOUNT, ns->user_ns);
Or you could just change fc->user_ns immediately after calling
vfs_new_fs_context(). This is what network filesystems should do with
fc->net_ns, for example.
> -struct fs_context *vfs_new_fs_context(struct file_system_type *fs_type,
> +struct fs_context *vfs_new_fs_context_userns(struct file_system_type *fs_type,
> struct dentry *reference,
> unsigned int sb_flags,
> - enum fs_context_purpose purpose)
> + enum fs_context_purpose purpose,
> + struct user_namespace *user_ns)
If you'd really rather add a new parameter, please don't rename the function
to vfs_new_fs_context_userns() - just add a new parameter. There don't need
to be two versions of it.
This brings me to another thought: I want to add the ability to let
namespaces be configured by userspace, for example:
fd = fsopen("nfs");
sprintf(buf, "ns user %d", my_user_ns_fd);
write(fd, buf);
sprintf(buf, "ns net %d", my_net_ns_fd);
write(fd, buf);
write(fd, "s fedoraproject.org:/pub");
write(fd, "o intr");
...
I think therefore, I might need to insert another phase between creating the
context and calling the filesystem initialiser:
fc = vfs_new_fs_context(&afs_fs_type, mntpt, 0,
FS_CONTEXT_FOR_SUBMOUNT);
followed by:
vfs_sb_set_namespace(fc, THIS_IS_USER_NS, user_ns);
vfs_sb_set_namespace(fc, THIS_IS_NET_NS, net_ns);
but then we'd need to do:
vfs_begin_options(fc);
before continuing (unless we made this happen automatically on the receipt of
the first option):
afs_mntpt_set_params(fc, mntpt);
vfs_get_tree(fc);
mnt = vfs_create_mount(fc, 0);
Alternatively, we could do the namespace setting after initialisation and let
the fs apply the changes itself.
David
next prev parent reply other threads:[~2018-06-26 8:57 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-19 13:31 [PATCH 00/24] VFS: Introduce filesystem context [ver #7] David Howells
2018-04-19 13:31 ` [PATCH 01/24] vfs: Undo an overly zealous MS_RDONLY -> SB_RDONLY conversion " David Howells
2018-04-19 13:31 ` [PATCH 02/24] VFS: Suppress MS_* flag defs within the kernel unless explicitly enabled " David Howells
2018-04-19 13:31 ` [PATCH 03/24] VFS: Introduce the structs and doc for a filesystem context " David Howells
2018-04-23 3:36 ` Randy Dunlap
2018-05-01 14:29 ` David Howells
2018-05-01 15:31 ` Randy Dunlap
2018-04-19 13:31 ` [PATCH 04/24] VFS: Add LSM hooks for " David Howells
2018-04-19 20:32 ` Paul Moore
2018-04-20 15:35 ` David Howells
2018-04-23 13:25 ` Stephen Smalley
2018-04-24 15:22 ` David Howells
2018-04-25 14:07 ` Stephen Smalley
2018-04-19 13:31 ` [PATCH 05/24] apparmor: Implement security hooks for the new mount API " David Howells
2018-05-04 0:10 ` John Johansen
2018-05-11 12:20 ` David Howells
2018-04-19 13:31 ` [PATCH 06/24] tomoyo: " David Howells
2018-04-19 13:31 ` [PATCH 07/24] smack: Implement filesystem context security hooks " David Howells
2018-04-19 13:31 ` [PATCH 08/24] VFS: Require specification of size of mount data for internal mounts " David Howells
2018-04-19 13:32 ` [PATCH 09/24] VFS: Implement a filesystem superblock creation/configuration context " David Howells
2018-04-19 13:32 ` [PATCH 10/24] VFS: Remove unused code after filesystem context changes " David Howells
2018-04-19 13:32 ` [PATCH 11/24] procfs: Move proc_fill_super() to fs/proc/root.c " David Howells
2018-04-19 13:32 ` [PATCH 12/24] proc: Add fs_context support to procfs " David Howells
2018-06-19 3:34 ` [12/24] " Andrei Vagin
2018-06-26 6:13 ` Andrei Vagin
2018-06-26 7:27 ` Andrei Vagin
2018-06-26 8:57 ` David Howells [this message]
2018-06-28 5:50 ` Andrei Vagin
2018-04-19 13:32 ` [PATCH 13/24] ipc: Convert mqueue fs to fs_context " David Howells
2018-04-19 13:32 ` [PATCH 14/24] cpuset: Use " David Howells
2018-04-19 13:32 ` [PATCH 15/24] kernfs, sysfs, cgroup, intel_rdt: Support " David Howells
2018-04-19 13:33 ` [PATCH 16/24] hugetlbfs: Convert to " David Howells
2018-04-19 13:33 ` [PATCH 17/24] VFS: Remove kern_mount_data() " David Howells
2018-04-19 13:33 ` [PATCH 18/24] VFS: Implement fsopen() to prepare for a mount " David Howells
2018-04-19 13:33 ` [PATCH 19/24] VFS: Implement fsmount() to effect a pre-configured " David Howells
2018-04-19 13:33 ` [PATCH 20/24] afs: Fix server record deletion " David Howells
2018-04-19 13:33 ` [PATCH 21/24] net: Export get_proc_net() " David Howells
2018-04-19 13:33 ` [PATCH 22/24] afs: Add fs_context support " David Howells
2018-04-19 13:33 ` [PATCH 23/24] afs: Implement namespacing " David Howells
2018-04-19 13:33 ` [PATCH 24/24] afs: Use fs_context to pass parameters over automount " David Howells
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=31831.1530003427@warthog.procyon.org.uk \
--to=dhowells@redhat.com \
--cc=avagin@virtuozzo.com \
--cc=linux-afs@lists.infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).