]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - net/netfilter/ipvs/ip_vs_ctl.c
Merge tag 'for-5.6-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
[linux.git] / net / netfilter / ipvs / ip_vs_ctl.c
index 3cccc88ef817bdbc4719316757e8cf8b5d61df1b..8d14a1acbc37057282a36f7ea33004eb42781e29 100644 (file)
@@ -423,7 +423,7 @@ ip_vs_service_find(struct netns_ipvs *ipvs, int af, __u32 fwmark, __u16 protocol
 
        if (!svc && protocol == IPPROTO_TCP &&
            atomic_read(&ipvs->ftpsvc_counter) &&
-           (vport == FTPDATA || ntohs(vport) >= inet_prot_sock(ipvs->net))) {
+           (vport == FTPDATA || !inet_port_requires_bind_service(ipvs->net, ntohs(vport)))) {
                /*
                 * Check if ftp service entry exists, the packet
                 * might belong to FTP data connections.
@@ -1607,14 +1607,20 @@ static int ip_vs_flush(struct netns_ipvs *ipvs, bool cleanup)
 
 /*
  *     Delete service by {netns} in the service table.
- *     Called by __ip_vs_cleanup()
+ *     Called by __ip_vs_batch_cleanup()
  */
-void ip_vs_service_net_cleanup(struct netns_ipvs *ipvs)
+void ip_vs_service_nets_cleanup(struct list_head *net_list)
 {
+       struct netns_ipvs *ipvs;
+       struct net *net;
+
        EnterFunction(2);
        /* Check for "full" addressed entries */
        mutex_lock(&__ip_vs_mutex);
-       ip_vs_flush(ipvs, true);
+       list_for_each_entry(net, net_list, exit_list) {
+               ipvs = net_ipvs(net);
+               ip_vs_flush(ipvs, true);
+       }
        mutex_unlock(&__ip_vs_mutex);
        LeaveFunction(2);
 }