on Tue, 14 Dec 2010 01:32:36AM +0200 Julian Anastasov (ja@xxxxxx) wrote: > > Hello, > > On Sun, 12 Dec 2010, Tinggong Wang wrote: > > >use time_after get the current buffer created more than the specified time. > > > >time_before in get_curr_sync_buff(2 * HZ) will get the buffer created newly. > >if curr_sb has been created more than 2*HZ then it will still sit in master. > >so use time_after instead. > > > >Signed-off-by: Tinggong Wang <wangtinggong@xxxxxxxxx> > >--- > >net/netfilter/ipvs/ip_vs_sync.c | 3 +-- > >1 files changed, 1 insertions(+), 2 deletions(-) > > > >diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c > >index 2b6b0cb..555b0dd 100644 > >--- a/net/netfilter/ipvs/ip_vs_sync.c > >+++ b/net/netfilter/ipvs/ip_vs_sync.c > >@@ -221,8 +221,7 @@ get_curr_sync_buff(unsigned long time) > > struct ip_vs_sync_buff *sb; > > > > spin_lock_bh(&curr_sb_lock); > >- if (curr_sb && (time == 0 || > >- time_before(jiffies - curr_sb->firstuse, time))) { > >+ if (curr_sb && time_after(jiffies - curr_sb->firstuse, time)) { > > This breaks the time=0 case when jiffies matches firstuse. > > May be the fix should be as follows?: > > if (curr_sb && time_after_eq(jiffies - curr_sb->firstuse, time)) { > > i.e. passed >= limit (2 or 0). > Thanks! here is the improved patch: >From 68f30a4e8759dae7de4fb846db8ad264301c0bc6 Mon Sep 17 00:00:00 2001 From: Tinggong Wang <wangtinggong@xxxxxxxxx> Date: Tue, 14 Dec 2010 10:53:24 +0800 Subject: [PATCH] ipvs: fix get_curr_sync_buff use time_after_eq get the current buffer created more than the specified time, or equals it. Signed-off-by: Tinggong Wang <wangtinggong@xxxxxxxxx> --- net/netfilter/ipvs/ip_vs_sync.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c index c1c167a..e9d2196 100644 --- a/net/netfilter/ipvs/ip_vs_sync.c +++ b/net/netfilter/ipvs/ip_vs_sync.c @@ -395,8 +395,7 @@ get_curr_sync_buff(unsigned long time) struct ip_vs_sync_buff *sb; spin_lock_bh(&curr_sb_lock); - if (curr_sb && (time == 0 || - time_before(jiffies - curr_sb->firstuse, time))) { + if (curr_sb && time_after_eq(jiffies - curr_sb->firstuse, time)) { sb = curr_sb; curr_sb = NULL; } else -- 1.7.2.3 > > sb = curr_sb; > > curr_sb = NULL; > > } else > >-- > >1.7.2.3 > > Regards > > -- > Julian Anastasov <ja@xxxxxx> -- To unsubscribe from this list: send the line "unsubscribe lvs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html