]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - net/sched/em_ipset.c
netfiler: ipset: Add net namespace for ipset
[karo-tx-linux.git] / net / sched / em_ipset.c
index 938b7cbf56278b34c6d5574a64c8c32fa4a1d3a2..1ac41d3de5c36d4c32cf27806172b6ea884980de 100644 (file)
@@ -24,11 +24,12 @@ static int em_ipset_change(struct tcf_proto *tp, void *data, int data_len,
 {
        struct xt_set_info *set = data;
        ip_set_id_t index;
+       struct net *net = qdisc_dev(tp->q)->nd_net;
 
        if (data_len != sizeof(*set))
                return -EINVAL;
 
-       index = ip_set_nfnl_get_byindex(set->index);
+       index = ip_set_nfnl_get_byindex(net, set->index);
        if (index == IPSET_INVALID_ID)
                return -ENOENT;
 
@@ -37,7 +38,7 @@ static int em_ipset_change(struct tcf_proto *tp, void *data, int data_len,
        if (em->data)
                return 0;
 
-       ip_set_nfnl_put(index);
+       ip_set_nfnl_put(net, index);
        return -ENOMEM;
 }
 
@@ -45,7 +46,7 @@ static void em_ipset_destroy(struct tcf_proto *p, struct tcf_ematch *em)
 {
        const struct xt_set_info *set = (const void *) em->data;
        if (set) {
-               ip_set_nfnl_put(set->index);
+               ip_set_nfnl_put(qdisc_dev(p->q)->nd_net, set->index);
                kfree((void *) em->data);
        }
 }