ipv4: Kill can_sleep arg to ip_route_output_flow()
authorDavid S. Miller <davem@davemloft.net>
Tue, 1 Mar 2011 22:27:04 +0000 (14:27 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 1 Mar 2011 22:27:04 +0000 (14:27 -0800)
This boolean state is now available in the flow flags.

Signed-off-by: David S. Miller <davem@davemloft.net>
12 files changed:
drivers/infiniband/hw/cxgb3/iwch_cm.c
drivers/infiniband/hw/cxgb4/cm.c
drivers/scsi/cxgbi/libcxgbi.c
include/net/route.h
net/dccp/ipv4.c
net/ipv4/af_inet.c
net/ipv4/inet_connection_sock.c
net/ipv4/ip_output.c
net/ipv4/raw.c
net/ipv4/route.c
net/ipv4/udp.c
net/l2tp/l2tp_ip.c

index c7f776c8b2b8a640520cc2543354d179ecee0bc8..e654285aa6ba2abda2fe9ee469d47cc2e38290e6 100644 (file)
@@ -354,7 +354,7 @@ static struct rtable *find_route(struct t3cdev *dev, __be32 local_ip,
                          }
        };
 
-       if (ip_route_output_flow(&init_net, &rt, &fl, NULL, false))
+       if (ip_route_output_flow(&init_net, &rt, &fl, NULL))
                return NULL;
        return rt;
 }
index 5542c994338da7aeac85fb446d93380073b2aed9..7e0484f18db585f36e4c22002fd97ea74c4bc746 100644 (file)
@@ -331,7 +331,7 @@ static struct rtable *find_route(struct c4iw_dev *dev, __be32 local_ip,
                          }
        };
 
-       if (ip_route_output_flow(&init_net, &rt, &fl, NULL, false))
+       if (ip_route_output_flow(&init_net, &rt, &fl, NULL))
                return NULL;
        return rt;
 }
index fabca75ac2f28bde44af781f63a9952163ed5acc..261aa817bdd5098500a2e4488907dd1bbb273d8d 100644 (file)
@@ -470,7 +470,7 @@ static struct rtable *find_route_ipv4(__be32 saddr, __be32 daddr,
                        }
        };
 
-       if (ip_route_output_flow(&init_net, &rt, &fl, NULL, false))
+       if (ip_route_output_flow(&init_net, &rt, &fl, NULL))
                return NULL;
 
        return rt;
index 1be5c05a09055f90a59846210fa5b55ac94929c7..923e670586d41db06d8bab0bcbd8803fd5d4d9e9 100644 (file)
@@ -120,7 +120,7 @@ extern void         rt_cache_flush(struct net *net, int how);
 extern void            rt_cache_flush_batch(struct net *net);
 extern int             __ip_route_output_key(struct net *, struct rtable **, const struct flowi *flp);
 extern int             ip_route_output_key(struct net *, struct rtable **, struct flowi *flp);
-extern int             ip_route_output_flow(struct net *, struct rtable **rp, struct flowi *flp, struct sock *sk, bool can_sleep);
+extern int             ip_route_output_flow(struct net *, struct rtable **rp, struct flowi *flp, struct sock *sk);
 
 extern int ip_route_input_common(struct sk_buff *skb, __be32 dst, __be32 src,
                                 u8 tos, struct net_device *devin, bool noref);
@@ -198,7 +198,7 @@ static inline int ip_route_connect(struct rtable **rp, __be32 dst,
                *rp = NULL;
        }
        security_sk_classify_flow(sk, &fl);
-       return ip_route_output_flow(net, rp, &fl, sk, can_sleep);
+       return ip_route_output_flow(net, rp, &fl, sk);
 }
 
 static inline int ip_route_newports(struct rtable **rp, u8 protocol,
@@ -222,7 +222,7 @@ static inline int ip_route_newports(struct rtable **rp, u8 protocol,
                ip_rt_put(*rp);
                *rp = NULL;
                security_sk_classify_flow(sk, &fl);
-               return ip_route_output_flow(sock_net(sk), rp, &fl, sk, false);
+               return ip_route_output_flow(sock_net(sk), rp, &fl, sk);
        }
        return 0;
 }
index 3d4b82f6adfdcd037c4b4341c6f1cc2631233182..a8ff9550208118d75fa36b84e45722d294c6ce04 100644 (file)
@@ -475,7 +475,7 @@ static struct dst_entry* dccp_v4_route_skb(struct net *net, struct sock *sk,
                          };
 
        security_skb_classify_flow(skb, &fl);
-       if (ip_route_output_flow(net, &rt, &fl, sk, false)) {
+       if (ip_route_output_flow(net, &rt, &fl, sk)) {
                IP_INC_STATS_BH(net, IPSTATS_MIB_OUTNOROUTES);
                return NULL;
        }
index 7d90fe0ee5a6745dd73634d1401606e542f87f50..44513bb8ac2e5f6a0cbd095814e765c9e16d59e2 100644 (file)
@@ -1174,7 +1174,7 @@ int inet_sk_rebuild_header(struct sock *sk)
        };
 
        security_sk_classify_flow(sk, &fl);
-       err = ip_route_output_flow(sock_net(sk), &rt, &fl, sk, false);
+       err = ip_route_output_flow(sock_net(sk), &rt, &fl, sk);
 }
        if (!err)
                sk_setup_caps(sk, &rt->dst);
index 0caeb69de4b143286e41b6e22ca1c18ba82c1f28..7f85d4aec26a17bb83ab80249b695be10715d55d 100644 (file)
@@ -369,7 +369,7 @@ struct dst_entry *inet_csk_route_req(struct sock *sk,
        struct net *net = sock_net(sk);
 
        security_req_classify_flow(req, &fl);
-       if (ip_route_output_flow(net, &rt, &fl, sk, false))
+       if (ip_route_output_flow(net, &rt, &fl, sk))
                goto no_route;
        if (opt && opt->is_strictroute && rt->rt_dst != rt->rt_gateway)
                goto route_err;
index e6905c562fb74c79098e28b4c9195a6007822e68..68dbe2d93d9d993c06c8f3dc412071c1eb8e2f16 100644 (file)
@@ -355,7 +355,7 @@ int ip_queue_xmit(struct sk_buff *skb)
                         * itself out.
                         */
                        security_sk_classify_flow(sk, &fl);
-                       if (ip_route_output_flow(sock_net(sk), &rt, &fl, sk, false))
+                       if (ip_route_output_flow(sock_net(sk), &rt, &fl, sk))
                                goto no_route;
                }
                sk_setup_caps(sk, &rt->dst);
index e8e8613bcbccf5c9f7a16a823bcefe9a97977328..d7a2d1eaec098d5c3da1f763dd3d865291b9c38d 100644 (file)
@@ -564,7 +564,7 @@ static int raw_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
                }
 
                security_sk_classify_flow(sk, &fl);
-               err = ip_route_output_flow(sock_net(sk), &rt, &fl, sk, true);
+               err = ip_route_output_flow(sock_net(sk), &rt, &fl, sk);
        }
        if (err)
                goto done;
index 1ac3ecaf36e8715771eb6522b6aa637871b348a6..78462658fccb11d9494d2f2a00e110afe68aac08 100644 (file)
@@ -2720,7 +2720,7 @@ static int ipv4_dst_blackhole(struct net *net, struct rtable **rp, struct flowi
 }
 
 int ip_route_output_flow(struct net *net, struct rtable **rp, struct flowi *flp,
-                        struct sock *sk, bool can_sleep)
+                        struct sock *sk)
 {
        int err;
 
@@ -2733,7 +2733,8 @@ int ip_route_output_flow(struct net *net, struct rtable **rp, struct flowi *flp,
                if (!flp->fl4_dst)
                        flp->fl4_dst = (*rp)->rt_dst;
                err = __xfrm_lookup(net, (struct dst_entry **)rp, flp, sk,
-                                   can_sleep ? XFRM_LOOKUP_WAIT : 0);
+                                   ((flp->flags & FLOWI_FLAG_CAN_SLEEP) ?
+                                    XFRM_LOOKUP_WAIT : 0));
                if (err == -EREMOTE)
                        err = ipv4_dst_blackhole(net, rp, flp);
 
@@ -2746,7 +2747,7 @@ EXPORT_SYMBOL_GPL(ip_route_output_flow);
 
 int ip_route_output_key(struct net *net, struct rtable **rp, struct flowi *flp)
 {
-       return ip_route_output_flow(net, rp, flp, NULL, false);
+       return ip_route_output_flow(net, rp, flp, NULL);
 }
 EXPORT_SYMBOL(ip_route_output_key);
 
index c6bcc93debd5f4334abc90880c2ede0d3353a7db..ed9a5b7bee53075533e32325ca63f7d79af1efae 100644 (file)
@@ -922,7 +922,7 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
                struct net *net = sock_net(sk);
 
                security_sk_classify_flow(sk, &fl);
-               err = ip_route_output_flow(net, &rt, &fl, sk, true);
+               err = ip_route_output_flow(net, &rt, &fl, sk);
                if (err) {
                        if (err == -ENETUNREACH)
                                IP_INC_STATS_BH(net, IPSTATS_MIB_OUTNOROUTES);
index 7744a8e4b4c6683bd015802b95765737838ee7c8..5381cebe516d001436cc116cabe47f30c10781ba 100644 (file)
@@ -489,7 +489,7 @@ static int l2tp_ip_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *m
                         * itself out.
                         */
                        security_sk_classify_flow(sk, &fl);
-                       if (ip_route_output_flow(sock_net(sk), &rt, &fl, sk, false))
+                       if (ip_route_output_flow(sock_net(sk), &rt, &fl, sk))
                                goto no_route;
                }
                sk_setup_caps(sk, &rt->dst);