ipvs: fix timer in get_curr_sync_buff
authorTinggong Wang <wangtinggong@gmail.com>
Wed, 9 Feb 2011 00:21:59 +0000 (02:21 +0200)
committerSimon Horman <horms@verge.net.au>
Tue, 15 Feb 2011 22:00:02 +0000 (07:00 +0900)
  Fix get_curr_sync_buff to keep buffer for 2 seconds
as intended, not just for the current jiffie. By this way
we will sync more connection structures with single packet.

Signed-off-by: Tinggong Wang <wangtinggong@gmail.com>
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Simon Horman <horms@verge.net.au>
net/netfilter/ipvs/ip_vs_sync.c

index d1b7298e58945308089e87ed9a4ce120f18e1958..fecf24de4af32a5b39db3a7f58edc6c4c9b81e08 100644 (file)
@@ -374,8 +374,8 @@ get_curr_sync_buff(struct netns_ipvs *ipvs, unsigned long time)
        struct ip_vs_sync_buff *sb;
 
        spin_lock_bh(&ipvs->sync_buff_lock);
-       if (ipvs->sync_buff && (time == 0 ||
-           time_before(jiffies - ipvs->sync_buff->firstuse, time))) {
+       if (ipvs->sync_buff &&
+           time_after_eq(jiffies - ipvs->sync_buff->firstuse, time)) {
                sb = ipvs->sync_buff;
                ipvs->sync_buff = NULL;
        } else