]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - net/netfilter/ipvs/ip_vs_ctl.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf
[karo-tx-linux.git] / net / netfilter / ipvs / ip_vs_ctl.c
index 4d753beaac32da82dd53ae9fb5db047781c8046f..1fa3c2307b6ea0173bbcf13c3d0b5cca8c68cba9 100644 (file)
@@ -699,7 +699,7 @@ ip_vs_trash_get_dest(struct ip_vs_service *svc, int dest_af,
                              dest->vfwmark,
                              IP_VS_DBG_ADDR(dest->af, &dest->addr),
                              ntohs(dest->port),
-                             atomic_read(&dest->refcnt));
+                             refcount_read(&dest->refcnt));
                if (dest->af == dest_af &&
                    ip_vs_addr_equal(dest_af, &dest->addr, daddr) &&
                    dest->port == dport &&
@@ -934,7 +934,7 @@ ip_vs_new_dest(struct ip_vs_service *svc, struct ip_vs_dest_user_kern *udest,
        atomic_set(&dest->activeconns, 0);
        atomic_set(&dest->inactconns, 0);
        atomic_set(&dest->persistconns, 0);
-       atomic_set(&dest->refcnt, 1);
+       refcount_set(&dest->refcnt, 1);
 
        INIT_HLIST_NODE(&dest->d_list);
        spin_lock_init(&dest->dst_lock);
@@ -998,7 +998,7 @@ ip_vs_add_dest(struct ip_vs_service *svc, struct ip_vs_dest_user_kern *udest)
                IP_VS_DBG_BUF(3, "Get destination %s:%u from trash, "
                              "dest->refcnt=%d, service %u/%s:%u\n",
                              IP_VS_DBG_ADDR(udest->af, &daddr), ntohs(dport),
-                             atomic_read(&dest->refcnt),
+                             refcount_read(&dest->refcnt),
                              dest->vfwmark,
                              IP_VS_DBG_ADDR(svc->af, &dest->vaddr),
                              ntohs(dest->vport));
@@ -1074,7 +1074,7 @@ static void __ip_vs_del_dest(struct netns_ipvs *ipvs, struct ip_vs_dest *dest,
        spin_lock_bh(&ipvs->dest_trash_lock);
        IP_VS_DBG_BUF(3, "Moving dest %s:%u into trash, dest->refcnt=%d\n",
                      IP_VS_DBG_ADDR(dest->af, &dest->addr), ntohs(dest->port),
-                     atomic_read(&dest->refcnt));
+                     refcount_read(&dest->refcnt));
        if (list_empty(&ipvs->dest_trash) && !cleanup)
                mod_timer(&ipvs->dest_trash_timer,
                          jiffies + (IP_VS_DEST_TRASH_PERIOD >> 1));
@@ -1157,7 +1157,7 @@ static void ip_vs_dest_trash_expire(unsigned long data)
 
        spin_lock(&ipvs->dest_trash_lock);
        list_for_each_entry_safe(dest, next, &ipvs->dest_trash, t_list) {
-               if (atomic_read(&dest->refcnt) > 1)
+               if (refcount_read(&dest->refcnt) > 1)
                        continue;
                if (dest->idle_start) {
                        if (time_before(now, dest->idle_start +
@@ -1545,7 +1545,7 @@ ip_vs_forget_dev(struct ip_vs_dest *dest, struct net_device *dev)
                              dev->name,
                              IP_VS_DBG_ADDR(dest->af, &dest->addr),
                              ntohs(dest->port),
-                             atomic_read(&dest->refcnt));
+                             refcount_read(&dest->refcnt));
                __ip_vs_dst_cache_reset(dest);
        }
        spin_unlock_bh(&dest->dst_lock);
@@ -1774,13 +1774,13 @@ static struct ctl_table vs_vars[] = {
                .procname       = "sync_version",
                .maxlen         = sizeof(int),
                .mode           = 0644,
-               .proc_handler   = &proc_do_sync_mode,
+               .proc_handler   = proc_do_sync_mode,
        },
        {
                .procname       = "sync_ports",
                .maxlen         = sizeof(int),
                .mode           = 0644,
-               .proc_handler   = &proc_do_sync_ports,
+               .proc_handler   = proc_do_sync_ports,
        },
        {
                .procname       = "sync_persist_mode",
@@ -2130,8 +2130,8 @@ static int ip_vs_stats_show(struct seq_file *seq, void *v)
 /*               01234567 01234567 01234567 0123456701234567 0123456701234567 */
        seq_puts(seq,
                 "   Total Incoming Outgoing         Incoming         Outgoing\n");
-       seq_printf(seq,
-                  "   Conns  Packets  Packets            Bytes            Bytes\n");
+       seq_puts(seq,
+                "   Conns  Packets  Packets            Bytes            Bytes\n");
 
        ip_vs_copy_stats(&show, &net_ipvs(net)->tot_stats);
        seq_printf(seq, "%8LX %8LX %8LX %16LX %16LX\n\n",
@@ -2178,8 +2178,8 @@ static int ip_vs_stats_percpu_show(struct seq_file *seq, void *v)
 /*               01234567 01234567 01234567 0123456701234567 0123456701234567 */
        seq_puts(seq,
                 "       Total Incoming Outgoing         Incoming         Outgoing\n");
-       seq_printf(seq,
-                  "CPU    Conns  Packets  Packets            Bytes            Bytes\n");
+       seq_puts(seq,
+                "CPU    Conns  Packets  Packets            Bytes            Bytes\n");
 
        for_each_possible_cpu(i) {
                struct ip_vs_cpu_stats *u = per_cpu_ptr(cpustats, i);
@@ -3100,7 +3100,8 @@ static int ip_vs_genl_parse_service(struct netns_ipvs *ipvs,
 
        /* Parse mandatory identifying service fields first */
        if (nla == NULL ||
-           nla_parse_nested(attrs, IPVS_SVC_ATTR_MAX, nla, ip_vs_svc_policy))
+           nla_parse_nested(attrs, IPVS_SVC_ATTR_MAX, nla,
+                            ip_vs_svc_policy, NULL))
                return -EINVAL;
 
        nla_af          = attrs[IPVS_SVC_ATTR_AF];
@@ -3258,8 +3259,8 @@ static int ip_vs_genl_dump_dests(struct sk_buff *skb,
        mutex_lock(&__ip_vs_mutex);
 
        /* Try to find the service for which to dump destinations */
-       if (nlmsg_parse(cb->nlh, GENL_HDRLEN, attrs,
-                       IPVS_CMD_ATTR_MAX, ip_vs_cmd_policy))
+       if (nlmsg_parse(cb->nlh, GENL_HDRLEN, attrs, IPVS_CMD_ATTR_MAX,
+                       ip_vs_cmd_policy, NULL))
                goto out_err;
 
 
@@ -3295,7 +3296,8 @@ static int ip_vs_genl_parse_dest(struct ip_vs_dest_user_kern *udest,
 
        /* Parse mandatory identifying destination fields first */
        if (nla == NULL ||
-           nla_parse_nested(attrs, IPVS_DEST_ATTR_MAX, nla, ip_vs_dest_policy))
+           nla_parse_nested(attrs, IPVS_DEST_ATTR_MAX, nla,
+                            ip_vs_dest_policy, NULL))
                return -EINVAL;
 
        nla_addr        = attrs[IPVS_DEST_ATTR_ADDR];
@@ -3537,7 +3539,7 @@ static int ip_vs_genl_set_daemon(struct sk_buff *skb, struct genl_info *info)
                if (!info->attrs[IPVS_CMD_ATTR_DAEMON] ||
                    nla_parse_nested(daemon_attrs, IPVS_DAEMON_ATTR_MAX,
                                     info->attrs[IPVS_CMD_ATTR_DAEMON],
-                                    ip_vs_daemon_policy))
+                                    ip_vs_daemon_policy, info->extack))
                        goto out;
 
                if (cmd == IPVS_CMD_NEW_DAEMON)