Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 16 Dec 2014 23:53:03 +0000 (15:53 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 16 Dec 2014 23:53:03 +0000 (15:53 -0800)
Pull vfs pile #2 from Al Viro:
 "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"

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

12 files changed:
1  2 
arch/ia64/kernel/perfmon.c
fs/inode.c
fs/namei.c
fs/proc/internal.h
include/linux/fs.h
include/linux/ipc_namespace.h
init/main.c
ipc/namespace.c
kernel/pid.c
kernel/pid_namespace.c
net/Makefile
net/socket.c

Simple merge
diff --cc fs/inode.c
Simple merge
diff --cc fs/namei.c
Simple merge
Simple merge
Simple merge
@@@ -6,7 -6,17 +6,8 @@@
  #include <linux/rwsem.h>
  #include <linux/notifier.h>
  #include <linux/nsproxy.h>
+ #include <linux/ns_common.h>
  
 -/*
 - * ipc namespace events
 - */
 -#define IPCNS_MEMCHANGED   0x00000001   /* Notify lowmem size changed */
 -#define IPCNS_CREATED  0x00000002   /* Notify new ipc namespace created */
 -#define IPCNS_REMOVED  0x00000003   /* Notify ipc namespace removed */
 -
 -#define IPCNS_CALLBACK_PRI 0
 -
  struct user_namespace;
  
  struct ipc_ids {
diff --cc init/main.c
@@@ -78,7 -78,7 +78,8 @@@
  #include <linux/context_tracking.h>
  #include <linux/random.h>
  #include <linux/list.h>
 +#include <linux/integrity.h>
+ #include <linux/proc_ns.h>
  
  #include <asm/io.h>
  #include <asm/bugs.h>
diff --cc ipc/namespace.c
@@@ -96,8 -114,13 +97,8 @@@ static void free_ipc_ns(struct ipc_name
        shm_exit_ns(ns);
        atomic_dec(&nr_ipc_ns);
  
 -      /*
 -       * Do the ipcns removal notification after decrementing nr_ipc_ns in
 -       * order to have a correct value when recomputing msgmni.
 -       */
 -      ipcns_notify(IPCNS_REMOVED);
        put_user_ns(ns->user_ns);
-       proc_free_inum(ns->proc_inum);
+       ns_free_inum(&ns->ns);
        kfree(ns);
  }
  
diff --cc kernel/pid.c
Simple merge
Simple merge
diff --cc net/Makefile
Simple merge
diff --cc net/socket.c
Simple merge