net ip6 flowlabel: Make owner a union of struct pid * and kuid_t
authorEric W. Biederman <ebiederm@xmission.com>
Thu, 24 May 2012 16:37:59 +0000 (10:37 -0600)
committerEric W. Biederman <ebiederm@xmission.com>
Wed, 15 Aug 2012 04:49:25 +0000 (21:49 -0700)
commit4f82f45730c68fdaf9b0472495a965188404866e
tree81b32f29328766a5fc3213c00e4177e0cfbedd40
parent7064d16e162adf8199f0288b694e6af823ed5431
net ip6 flowlabel: Make owner a union of struct pid * and kuid_t

Correct a long standing omission and use struct pid in the owner
field of struct ip6_flowlabel when the share type is IPV6_FL_S_PROCESS.
This guarantees we don't have issues when pid wraparound occurs.

Use a kuid_t in the owner field of struct ip6_flowlabel when the
share type is IPV6_FL_S_USER to add user namespace support.

In /proc/net/ip6_flowlabel capture the current pid namespace when
opening the file and release the pid namespace when the file is
closed ensuring we print the pid owner value that is meaning to
the reader of the file.  Similarly use from_kuid_munged to print
uid values that are meaningful to the reader of the file.

This requires exporting pid_nr_ns so that ipv6 can continue to built
as a module.  Yoiks what silliness

Acked-by: David S. Miller <davem@davemloft.net>
Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
include/net/ipv6.h
init/Kconfig
kernel/pid.c
net/ipv6/ip6_flowlabel.c