Re: [git pull] vfs.git pile 2

Al Viro
2014-12-16T18:06:07Z

On Tue, Dec 16, 2014 at 01:33:30PM +0000, Al Viro wrote:
> On Mon, Dec 15, 2014 at 11:51:25PM +0000, Al Viro wrote:
> > Next pile (and there'll be one or two more). The large piece in this one is
> > getting rid of /proc/*/ns/* weirdness; among other things, it allows to
> > (finally) make nameidata completely opaque outside of fs/namei.c, making for
> > easier further cleanups in there.
> >
> > I have _not_ included removal of unshare_fs_struct() into that pile; I think
> > it'll turn out to be OK, but it's clearly the next cycle fodder.
>
> ... but I have included the "obviously safe" patch separating PID 1
> ->fs. Without letting it sit in -next long enough. And it turns out
> to be not safe at all - it might be salvagable, but not in this form.
>
> Mea maxima culpa - I should've known better than that. Self-LART applied;
> please, drop this pull request, I'll send a saner one (for stuff that *did*
> sit in -next long enough) in a bit.
>
> Again, my apologies ;-/

... and this time around - only the stuff that has sat in -next for a while,
with no "obviously safe" additions thrown in. Please, pull from
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus

Shortlog:
Al Viro (17):
common object embedded into various struct ....ns
make mntns ->get()/->put()/->install()/->inum() work with &mnt_ns->ns
netns: switch ->get()/->put()/->install()/->inum() to working with &net->ns
switch the rest of proc_ns_operations to working with &...->ns
make proc_ns_operations work with struct ns_common * instead of void *
new helpers: ns_alloc_inum/ns_free_inum
copy address of proc_ns_ops into ns_common
bury struct proc_ns in fs/proc
take the targets of /proc/*/ns/* symlinks to separate fs
kill proc_ns completely
make nameidata completely opaque outside of fs/namei.c
make default ->i_fop have ->open() fail with ENXIO
path_init(): store the "base" pointer to file in nameidata itself
fs/namei.c: new helper (path_cleanup())
path_init(): don't bother with LOOKUP_PARENT in argument
fs/namei.c: fold link_path_walk() call into path_init()
coda_venus_readdir(): use file_inode()

Diffstat:
arch/ia64/kernel/perfmon.c | 10 ---
fs/Makefile | 2 +-
fs/coda/dir.c | 4 +-
fs/inode.c | 11 ++-
fs/internal.h | 5 ++
fs/mount.h | 3 +-
fs/namei.c | 98 +++++++++++++------------
fs/namespace.c | 51 ++++++-------
fs/nsfs.c | 161 +++++++++++++++++++++++++++++++++++++++++
fs/proc/inode.c | 10 +--
fs/proc/internal.h | 2 +-
fs/proc/namespaces.c | 153 ++++-----------------------------------
include/linux/fs.h | 1 -
include/linux/ipc_namespace.h | 3 +-
include/linux/namei.h | 25 +------
include/linux/ns_common.h | 12 +++
include/linux/pid_namespace.h | 3 +-
include/linux/proc_ns.h | 43 ++++++-----
include/linux/user_namespace.h | 3 +-
include/linux/utsname.h | 3 +-
include/net/net_namespace.h | 3 +-
include/uapi/linux/magic.h | 1 +
init/main.c | 2 +
init/version.c | 5 +-
ipc/msgutil.c | 5 +-
ipc/namespace.c | 32 ++++----
kernel/nsproxy.c | 10 +--
kernel/pid.c | 5 +-
kernel/pid_namespace.c | 29 ++++----
kernel/user.c | 5 +-
kernel/user_namespace.c | 29 ++++----
kernel/utsname.c | 31 ++++----
net/Makefile | 2 -
net/core/net_namespace.c | 39 +++++-----
net/nonet.c | 26 -------
net/socket.c | 19 -----
36 files changed, 416 insertions(+), 430 deletions(-)
create mode 100644 fs/nsfs.c
create mode 100644 include/linux/ns_common.h
delete mode 100644 net/nonet.c