diff mbox

[PATCHv2,net-next,3/4] flowcache: Fixup flow cache part in xfrm policy

Message ID 1389663588-29678-4-git-send-email-fan.du@windriver.com
State Awaiting Upstream, archived
Delegated to: David Miller
Headers show

Commit Message

fan.du Jan. 14, 2014, 1:39 a.m. UTC
Bump flow cache genid, and flush flow cache should also be made
in per net style.

Signed-off-by: Fan Du <fan.du@windriver.com>
---
 net/xfrm/xfrm_policy.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

Sabrina Dubroca Jan. 14, 2014, 6:59 p.m. UTC | #1
2014-01-14, 09:39:46 +0800, Fan Du wrote:
> Bump flow cache genid, and flush flow cache should also be made
> in per net style.
> 
> Signed-off-by: Fan Du <fan.du@windriver.com>
> ---
>  net/xfrm/xfrm_policy.c |    7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
> index e205c4b..d39c90f 100644
> --- a/net/xfrm/xfrm_policy.c
> +++ b/net/xfrm/xfrm_policy.c
> @@ -661,7 +661,7 @@ int xfrm_policy_insert(int dir, struct xfrm_policy *policy, int excl)
>  		hlist_add_head(&policy->bydst, chain);
>  	xfrm_pol_hold(policy);
>  	net->xfrm.policy_count[dir]++;
> -	atomic_inc(&flow_cache_genid);
> +	atomic_inc(&net->xfrm.flow_cache_genid);
>  
>  	/* After previous checking, family can either be AF_INET or AF_INET6 */
>  	if (policy->family == AF_INET)
> @@ -2567,14 +2567,14 @@ static void __xfrm_garbage_collect(struct net *net)
>  
>  void xfrm_garbage_collect(struct net *net)
>  {
> -	flow_cache_flush();
> +	flow_cache_flush(net);
>  	__xfrm_garbage_collect(net);
>  }
>  EXPORT_SYMBOL(xfrm_garbage_collect);
>  
>  static void xfrm_garbage_collect_deferred(struct net *net)
>  {
> -	flow_cache_flush_deferred();
> +	flow_cache_flush_deferred(net);
>  	__xfrm_garbage_collect(net);
>  }
>  
> @@ -2947,6 +2947,7 @@ static int __net_init xfrm_net_init(struct net *net)
>  	spin_lock_init(&net->xfrm.xfrm_policy_sk_bundle_lock);
>  	mutex_init(&net->xfrm.xfrm_cfg_mutex);
>  
> +	flow_cache_init(net);
>  	return 0;
>  
>  out_sysctl:


You didn't address Cong Wang's comments for v1:

2014-01-13, 11:42:47 -0800, Cong Wang wrote:
> On Sun, Jan 12, 2014 at 11:49 PM, Fan Du <fan.du@windriver.com> wrote:
> >  void xfrm_garbage_collect(struct net *net)
> >  {
> > -       flow_cache_flush();
> > +       flow_cache_flush(net);
> >         __xfrm_garbage_collect(net);
> >  }
> >  EXPORT_SYMBOL(xfrm_garbage_collect);
> >
> >  static void xfrm_garbage_collect_deferred(struct net *net)
> >  {
> > -       flow_cache_flush_deferred();
> > +       flow_cache_flush_deferred(net);
> >         __xfrm_garbage_collect(net);
> >  }
> >
> 
> You changed the prototypes of flow_cache_flush*() in the previous
> patch, so, here you break bisect. They have to be in one commit.
fan.du Jan. 15, 2014, 7:19 a.m. UTC | #2
On 2014年01月15日 02:59, Sabrina Dubroca wrote:
> 2014-01-14, 09:39:46 +0800, Fan Du wrote:
>> Bump flow cache genid, and flush flow cache should also be made
>> in per net style.
>>
>> Signed-off-by: Fan Du<fan.du@windriver.com>
>> ---
>>   net/xfrm/xfrm_policy.c |    7 ++++---
>>   1 file changed, 4 insertions(+), 3 deletions(-)
>>
>> diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
>> index e205c4b..d39c90f 100644
>> --- a/net/xfrm/xfrm_policy.c
>> +++ b/net/xfrm/xfrm_policy.c
>> @@ -661,7 +661,7 @@ int xfrm_policy_insert(int dir, struct xfrm_policy *policy, int excl)
>>   		hlist_add_head(&policy->bydst, chain);
>>   	xfrm_pol_hold(policy);
>>   	net->xfrm.policy_count[dir]++;
>> -	atomic_inc(&flow_cache_genid);
>> +	atomic_inc(&net->xfrm.flow_cache_genid);
>>
>>   	/* After previous checking, family can either be AF_INET or AF_INET6 */
>>   	if (policy->family == AF_INET)
>> @@ -2567,14 +2567,14 @@ static void __xfrm_garbage_collect(struct net *net)
>>
>>   void xfrm_garbage_collect(struct net *net)
>>   {
>> -	flow_cache_flush();
>> +	flow_cache_flush(net);
>>   	__xfrm_garbage_collect(net);
>>   }
>>   EXPORT_SYMBOL(xfrm_garbage_collect);
>>
>>   static void xfrm_garbage_collect_deferred(struct net *net)
>>   {
>> -	flow_cache_flush_deferred();
>> +	flow_cache_flush_deferred(net);
>>   	__xfrm_garbage_collect(net);
>>   }
>>
>> @@ -2947,6 +2947,7 @@ static int __net_init xfrm_net_init(struct net *net)
>>   	spin_lock_init(&net->xfrm.xfrm_policy_sk_bundle_lock);
>>   	mutex_init(&net->xfrm.xfrm_cfg_mutex);
>>
>> +	flow_cache_init(net);
>>   	return 0;
>>
>>   out_sysctl:
>
>
> You didn't address Cong Wang's comments for v1:

Sorry, seems company email server didn't forward below message to me。。。
but I saw yours. I'm happy to forge the relevant patches into one single
patch in next next version :) if Steffen doesn't complain.

>
> 2014-01-13, 11:42:47 -0800, Cong Wang wrote:
>> On Sun, Jan 12, 2014 at 11:49 PM, Fan Du<fan.du@windriver.com>  wrote:
>>>   void xfrm_garbage_collect(struct net *net)
>>>   {
>>> -       flow_cache_flush();
>>> +       flow_cache_flush(net);
>>>          __xfrm_garbage_collect(net);
>>>   }
>>>   EXPORT_SYMBOL(xfrm_garbage_collect);
>>>
>>>   static void xfrm_garbage_collect_deferred(struct net *net)
>>>   {
>>> -       flow_cache_flush_deferred();
>>> +       flow_cache_flush_deferred(net);
>>>          __xfrm_garbage_collect(net);
>>>   }
>>>
>>
>> You changed the prototypes of flow_cache_flush*() in the previous
>> patch, so, here you break bisect. They have to be in one commit.
>
>
diff mbox

Patch

diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index e205c4b..d39c90f 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -661,7 +661,7 @@  int xfrm_policy_insert(int dir, struct xfrm_policy *policy, int excl)
 		hlist_add_head(&policy->bydst, chain);
 	xfrm_pol_hold(policy);
 	net->xfrm.policy_count[dir]++;
-	atomic_inc(&flow_cache_genid);
+	atomic_inc(&net->xfrm.flow_cache_genid);
 
 	/* After previous checking, family can either be AF_INET or AF_INET6 */
 	if (policy->family == AF_INET)
@@ -2567,14 +2567,14 @@  static void __xfrm_garbage_collect(struct net *net)
 
 void xfrm_garbage_collect(struct net *net)
 {
-	flow_cache_flush();
+	flow_cache_flush(net);
 	__xfrm_garbage_collect(net);
 }
 EXPORT_SYMBOL(xfrm_garbage_collect);
 
 static void xfrm_garbage_collect_deferred(struct net *net)
 {
-	flow_cache_flush_deferred();
+	flow_cache_flush_deferred(net);
 	__xfrm_garbage_collect(net);
 }
 
@@ -2947,6 +2947,7 @@  static int __net_init xfrm_net_init(struct net *net)
 	spin_lock_init(&net->xfrm.xfrm_policy_sk_bundle_lock);
 	mutex_init(&net->xfrm.xfrm_cfg_mutex);
 
+	flow_cache_init(net);
 	return 0;
 
 out_sysctl: