net_sched: fix error return code in fw_change_attrs()
authorWei Yongjun <yongjun_wei@trendmicro.com.cn>
Fri, 17 Jan 2014 01:53:20 +0000 (09:53 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 17 Jan 2014 03:12:03 +0000 (19:12 -0800)
The error code was not set if change indev fail, so the error
condition wasn't reflected in the return value. Fix to return a
negative error code from this error handling case instead of 0.

Fixes: 2519a602c273 ('net_sched: optimize tcf_match_indev()')
Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_fw.c

index ed00e8c21ceaa8bb0f2fb1c8d44ba872b5d2e9d1..a366537f82c6b7981472cdcc51e977a139f3b540 100644 (file)
@@ -209,8 +209,10 @@ fw_change_attrs(struct net *net, struct tcf_proto *tp, struct fw_filter *f,
        if (tb[TCA_FW_INDEV]) {
                int ret;
                ret = tcf_change_indev(net, tb[TCA_FW_INDEV]);
-               if (ret < 0)
+               if (ret < 0) {
+                       err = ret;
                        goto errout;
+               }
                f->ifindex = ret;
        }
 #endif /* CONFIG_NET_CLS_IND */