tun: correctly report an error in tun_flow_init()
authorPaul Moore <pmoore@redhat.com>
Thu, 6 Dec 2012 05:48:38 +0000 (05:48 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 7 Dec 2012 18:20:46 +0000 (13:20 -0500)
On error, the error code from tun_flow_init() is lost inside
tun_set_iff(), this patch fixes this by assigning the tun_flow_init()
error code to the "err" variable which is returned by
the tun_flow_init() function on error.

Signed-off-by: Paul Moore <pmoore@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tun.c

index a1b2389e6d7fdacce6abb7b3b1ed7d24a2029d05..14a04543cd91fef0ab1b5b3516caa7cc6230f4cf 100644 (file)
@@ -1591,7 +1591,8 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
 
                tun_net_init(dev);
 
-               if (tun_flow_init(tun))
+               err = tun_flow_init(tun);
+               if (err < 0)
                        goto err_free_dev;
 
                dev->hw_features = NETIF_F_SG | NETIF_F_FRAGLIST |