blob: f23702f24d774636fd9dd581edb717e6b914612f [file] [log] [blame]
#ifndef _COMPAT_NET_NET_NAMESPACE_H
#define _COMPAT_NET_NET_NAMESPACE_H 1
#include <linux/version.h>
#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,23))
#include_next <net/net_namespace.h>
#endif /* (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,23)) */
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
#ifdef CONFIG_NET_NS
static inline void write_pnet(struct net **pnet, struct net *net)
{
*pnet = net;
}
static inline struct net *read_pnet(struct net * const *pnet)
{
return *pnet;
}
#else
#define write_pnet(pnet, net) do { (void)(net);} while (0)
#define read_pnet(pnet) (&init_net)
#endif
#endif /* < 2.6.29 */
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26)
#ifdef CONFIG_NET_NS
static inline
int net_eq(const struct net *net1, const struct net *net2)
{
return net1 == net2;
}
#else
static inline
int net_eq(const struct net *net1, const struct net *net2)
{
return 1;
}
#endif
static inline
void dev_net_set(struct net_device *dev, struct net *net)
{
#ifdef CONFIG_NET_NS
release_net(dev->nd_net);
dev->nd_net = hold_net(net);
#endif
}
static inline
struct net *sock_net(const struct sock *sk)
{
#ifdef CONFIG_NET_NS
return sk->sk_net;
#else
return &init_net;
#endif
}
#endif /* < 2.6.26 */
#endif /* _COMPAT_NET_NET_NAMESPACE_H */