Commit c7e4343c authored by Yang Yingliang's avatar Yang Yingliang
Browse files

Revert "net: make get_net_ns return error if NET_NS is disabled"



hulk inclusion
category: bugfix
bugzilla: NA
CVE: NA

--------------------------------

The commit a7957d8c ("net: make get_net_ns return error...")
breaks the kabi, it fixes the bug only with CONFIG_NET_NS disabled,
the config is always enabled, so it can be revert.

Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
Reviewed-by: default avatarYue Haibing <yuehaibing@huawei.com>
Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
parent 63ffacab
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -409,4 +409,6 @@ extern int __sys_getpeername(int fd, struct sockaddr __user *usockaddr,
extern int __sys_socketpair(int family, int type, int protocol,
			    int __user *usockvec);
extern int __sys_shutdown(int fd, int how);

extern struct ns_common *get_net_ns(struct ns_common *ns);
#endif /* _LINUX_SOCKET_H */
+0 −7
Original line number Diff line number Diff line
@@ -175,8 +175,6 @@ struct net *copy_net_ns(unsigned long flags, struct user_namespace *user_ns,
void net_ns_get_ownership(const struct net *net, kuid_t *uid, kgid_t *gid);

void net_ns_barrier(void);

struct ns_common *get_net_ns(struct ns_common *ns);
#else /* CONFIG_NET_NS */
#include <linux/sched.h>
#include <linux/nsproxy.h>
@@ -196,11 +194,6 @@ static inline void net_ns_get_ownership(const struct net *net,
}

static inline void net_ns_barrier(void) {}

static inline struct ns_common *get_net_ns(struct ns_common *ns)
{
	return ERR_PTR(-EINVAL);
}
#endif /* CONFIG_NET_NS */


+0 −12
Original line number Diff line number Diff line
@@ -598,18 +598,6 @@ void __put_net(struct net *net)
}
EXPORT_SYMBOL_GPL(__put_net);

/**
 * get_net_ns - increment the refcount of the network namespace
 * @ns: common namespace (net)
 *
 * Returns the net's common namespace.
 */
struct ns_common *get_net_ns(struct ns_common *ns)
{
	return &get_net(container_of(ns, struct net, ns))->ns;
}
EXPORT_SYMBOL_GPL(get_net_ns);

struct net *get_net_ns_by_fd(int fd)
{
	struct file *file;
+13 −0
Original line number Diff line number Diff line
@@ -1048,6 +1048,19 @@ static long sock_do_ioctl(struct net *net, struct socket *sock,
 *	what to do with it - that's up to the protocol still.
 */

/**
 *	get_net_ns - increment the refcount of the network namespace
 *	@ns: common namespace (net)
 *
 *	Returns the net's common namespace.
 */

struct ns_common *get_net_ns(struct ns_common *ns)
{
	return &get_net(container_of(ns, struct net, ns))->ns;
}
EXPORT_SYMBOL_GPL(get_net_ns);

static long sock_ioctl(struct file *file, unsigned cmd, unsigned long arg)
{
	struct socket *sock;