net: Introduce possible_net_t
authorEric W. Biederman <ebiederm@xmission.com>
Thu, 12 Mar 2015 04:06:44 +0000 (23:06 -0500)
committerDavid S. Miller <davem@davemloft.net>
Thu, 12 Mar 2015 18:39:40 +0000 (14:39 -0400)
commit0c5c9fb55106333e773de8c9dd321fa8240caeb3
treeda550b771a52ba583eb97c1ad00fffbf3ae17f73
parentefd7ef1c1929d7a0329d4349252863c04d6f1729
net: Introduce possible_net_t

Having to say
> #ifdef CONFIG_NET_NS
>  struct net *net;
> #endif

in structures is a little bit wordy and a little bit error prone.

Instead it is possible to say:
> typedef struct {
> #ifdef CONFIG_NET_NS
>       struct net *net;
> #endif
> } possible_net_t;

And then in a header say:

>  possible_net_t net;

Which is cleaner and easier to use and easier to test, as the
possible_net_t is always there no matter what the compile options.

Further this allows read_pnet and write_pnet to be functions in all
cases which is better at catching typos.

This change adds possible_net_t, updates the definitions of read_pnet
and write_pnet, updates optional struct net * variables that
write_pnet uses on to have the type possible_net_t, and finally fixes
up the b0rked users of read_pnet and write_pnet.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 files changed:
include/linux/netdevice.h
include/net/cfg80211.h
include/net/genetlink.h
include/net/inet_hashtables.h
include/net/ip_vs.h
include/net/neighbour.h
include/net/net_namespace.h
include/net/netfilter/nf_conntrack.h
include/net/sock.h
include/net/xfrm.h
net/9p/trans_fd.c
net/ipv4/ipmr.c
net/ipv6/addrlabel.c
net/ipv6/ip6mr.c
net/openvswitch/datapath.h
net/packet/internal.h