netfilter: enable per netns support for nf_loggers
After this patch, all nf_loggers support net namespace. Still
xt_LOG and ebt_log require syslog netns support.
Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c
index 8d331dc..388656d 100644
--- a/net/netfilter/nf_log.c
+++ b/net/netfilter/nf_log.c
@@ -35,9 +35,6 @@
{
const struct nf_logger *log;
- if (!net_eq(net, &init_net))
- return;
-
if (pf == NFPROTO_UNSPEC)
return;
@@ -56,9 +53,6 @@
int i;
const struct nf_logger *log;
- if (!net_eq(net, &init_net))
- return;
-
mutex_lock(&nf_log_mutex);
for (i = 0; i < NFPROTO_NUMPROTO; i++) {
log = rcu_dereference_protected(net->nf.nf_loggers[i],
@@ -94,7 +88,6 @@
mutex_unlock(&nf_log_mutex);
- nf_log_set(&init_net, pf, logger);
return 0;
}
EXPORT_SYMBOL(nf_log_register);
@@ -107,17 +100,12 @@
for (i = 0; i < NFPROTO_NUMPROTO; i++)
list_del(&logger->list[i]);
mutex_unlock(&nf_log_mutex);
-
- nf_log_unset(&init_net, logger);
}
EXPORT_SYMBOL(nf_log_unregister);
int nf_log_bind_pf(struct net *net, u_int8_t pf,
const struct nf_logger *logger)
{
- if (!net_eq(net, &init_net))
- return 0;
-
if (pf >= ARRAY_SIZE(net->nf.nf_loggers))
return -EINVAL;
mutex_lock(&nf_log_mutex);
@@ -133,9 +121,6 @@
void nf_log_unbind_pf(struct net *net, u_int8_t pf)
{
- if (!net_eq(net, &init_net))
- return;
-
if (pf >= ARRAY_SIZE(net->nf.nf_loggers))
return;
mutex_lock(&nf_log_mutex);
@@ -157,9 +142,6 @@
char prefix[NF_LOG_PREFIXLEN];
const struct nf_logger *logger;
- if (!net_eq(net, &init_net))
- return;
-
rcu_read_lock();
logger = rcu_dereference(net->nf.nf_loggers[pf]);
if (logger) {
@@ -274,9 +256,6 @@
struct net *net = current->nsproxy->net_ns;
if (write) {
- if (!net_eq(net, &init_net))
- return -EPERM;
-
if (size > sizeof(buf))
size = sizeof(buf);
if (copy_from_user(buf, buffer, size))