From: Gao Feng
1. Return one error when try to delete all timeouts and meet one erorr;
2. Delete the condition block when fail to delete specified timeout.
It is more clear that it would stop the loop when find one matched timeout.
Signed-off-by: Gao Feng
---
net/netfilter/nfnetlink_cttimeout.c | 15 +--
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/net/netfilter/nfnetlink_cttimeout.c
b/net/netfilter/nfnetlink_cttimeout.c
index baa75f3..220847a 100644
--- a/net/netfilter/nfnetlink_cttimeout.c
+++ b/net/netfilter/nfnetlink_cttimeout.c
@@ -361,11 +361,17 @@ static int cttimeout_del_timeout(struct net *net, struct
sock *ctnl,
char *name;
if (!cda[CTA_TIMEOUT_NAME]) {
+ int cur_ret;
+
+ ret = 0;
list_for_each_entry_safe(cur, tmp, &net->nfct_timeout_list,
-head)
- ctnl_timeout_try_del(net, cur);
+head) {
+ cur_ret = ctnl_timeout_try_del(net, cur);
+ if (cur_ret && !ret)
+ ret = cur_ret;
+ }
- return 0;
+ return ret;
}
name = nla_data(cda[CTA_TIMEOUT_NAME]);
@@ -374,9 +380,6 @@ static int cttimeout_del_timeout(struct net *net, struct
sock *ctnl,
continue;
ret = ctnl_timeout_try_del(net, cur);
- if (ret < 0)
- return ret;
-
break;
}
return ret;
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html