]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - net/ipv4/netfilter/nf_nat_ftp.c
Merge branch 'master' into csb1725
[mv-sheeva.git] / net / ipv4 / netfilter / nf_nat_ftp.c
index 86e0e84ff0a04fe09cd3b5d67dddcf93457ffa15..dc73abb3fe27ecea0537ab8fa2a5e029435fb783 100644 (file)
@@ -79,9 +79,16 @@ static unsigned int nf_nat_ftp(struct sk_buff *skb,
 
        /* Try to get same port: if not, try to change it. */
        for (port = ntohs(exp->saved_proto.tcp.port); port != 0; port++) {
+               int ret;
+
                exp->tuple.dst.u.tcp.port = htons(port);
-               if (nf_ct_expect_related(exp) == 0)
+               ret = nf_ct_expect_related(exp);
+               if (ret == 0)
+                       break;
+               else if (ret != -EBUSY) {
+                       port = 0;
                        break;
+               }
        }
 
        if (port == 0)