From: Linus Torvalds Date: Tue, 16 Dec 2014 23:53:03 +0000 (-0800) Subject: Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs X-Git-Tag: v3.19-rc1~53 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=603ba7e41bf5d405aba22294af5d075d8898176d;p=platform%2Fkernel%2Flinux-exynos.git Merge branch 'for-linus' of git://git./linux/kernel/git/viro/vfs 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 --- 603ba7e41bf5d405aba22294af5d075d8898176d diff --cc include/linux/ipc_namespace.h index e365d5e,52a6401..1eee6bc --- a/include/linux/ipc_namespace.h +++ b/include/linux/ipc_namespace.h @@@ -6,7 -6,17 +6,8 @@@ #include #include #include + #include -/* - * 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 index 747ecc4,40240c8..61b99376 --- a/init/main.c +++ b/init/main.c @@@ -78,7 -78,7 +78,8 @@@ #include #include #include +#include + #include #include #include diff --cc ipc/namespace.c index 1a3ffd4,382e2aa..068caf1 --- a/ipc/namespace.c +++ b/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); }