linux/init
Eric W. Biederman 98f842e675 proc: Usable inode numbers for the namespace file descriptors.
Assign a unique proc inode to each namespace, and use that
inode number to ensure we only allocate at most one proc
inode for every namespace in proc.

A single proc inode per namespace allows userspace to test
to see if two processes are in the same namespace.

This has been a long requested feature and only blocked because
a naive implementation would put the id in a global space and
would ultimately require having a namespace for the names of
namespaces, making migration and certain virtualization tricks
impossible.

We still don't have per superblock inode numbers for proc, which
appears necessary for application unaware checkpoint/restart and
migrations (if the application is using namespace file descriptors)
but that is now allowd by the design if it becomes important.

I have preallocated the ipc and uts initial proc inode numbers so
their structures can be statically initialized.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
2012-11-20 04:19:49 -08:00
..
calibrate.c init: check printed flag to skip printing message 2012-03-23 16:58:38 -07:00
do_mounts_initrd.c don't bother with kernel_thread/kernel_execve for launching linuxrc 2012-10-11 21:40:30 -04:00
do_mounts_md.c init: disable sparse checking of the mount.o source files 2012-05-31 17:49:27 -07:00
do_mounts_rd.c init: disable sparse checking of the mount.o source files 2012-05-31 17:49:27 -07:00
do_mounts.c vfs: allocate page instead of names_cache buffer in mount_block_root 2012-10-12 00:32:03 -04:00
do_mounts.h md: move lots of #include lines out of .h files and into .c 2009-03-31 14:33:13 +11:00
init_task.c init_task: Create generic init_task instance 2012-05-05 13:00:21 +02:00
initramfs.c init: disable sparse checking of the mount.o source files 2012-05-31 17:49:27 -07:00
Kconfig userns: Support fuse interacting with multiple user namespaces 2012-11-14 22:05:33 -08:00
main.c pidns: Consolidate initialzation of special init task state 2012-11-19 05:59:15 -08:00
Makefile init_task: Replace CONFIG_HAVE_GENERIC_INIT_TASK 2012-05-05 13:00:46 +02:00
noinitramfs.c init: mark __user address space on string literals 2010-10-26 16:52:15 -07:00
version.c proc: Usable inode numbers for the namespace file descriptors. 2012-11-20 04:19:49 -08:00