From: Gao Feng <fgao@xxxxxxxxxx> 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 <fgao@xxxxxxxxxx> --- 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html