Subject: Re: kern/28418
To: None <darrenr@netbsd.org, gnats-admin@netbsd.org,>
From: Darren Reed <darrenr@NetBSD.org>
List: netbsd-bugs
Date: 07/18/2005 21:16:02
The following reply was made to PR kern/28418; it has been noted by GNATS.

From: Darren Reed <darrenr@NetBSD.org>
To: gnats-bugs@netbsd.org
Cc: gnats-admin@netbsd.org, netbsd-bugs@netbsd.org
Subject: Re: kern/28418
Date: Mon, 18 Jul 2005 21:11:11 +0000

 Christos,
 
 Can you please back out the earlier change you made to fix this problem
 and try the patch below ?
 
 THanks,
 Darren
 
 Index: fil.c
 ===================================================================
 RCS file: /devel/CVS/IP-Filter/fil.c,v
 retrieving revision 2.243.2.62
 diff -c -r2.243.2.62 fil.c
 *** fil.c	16 Jun 2005 22:36:05 -0000	2.243.2.62
 --- fil.c	9 Jul 2005 08:24:01 -0000
 ***************
 *** 1933,1940 ****
   			if (fin->fin_flx & FI_DONTCACHE)
   				logged = 1;
   		}
 ! 		if (pass & FR_QUICK)
   			break;
   	}
   	if (logged)
   		fin->fin_flx |= FI_DONTCACHE;
 --- 1948,1973 ----
   			if (fin->fin_flx & FI_DONTCACHE)
   				logged = 1;
   		}
 ! 
 ! 		if (pass & FR_QUICK) {
 ! 			/*
 ! 			 * Finally, if we've asked to track state for this
 ! 			 * packet, set it up.
 ! 			 */
 ! 			if ((pass & FR_KEEPSTATE) &&
 ! 			    !(fin->fin_flx & FI_STATE)) {
 ! 				int out = fin->fin_out;
 ! 
 ! 				if (fr_addstate(fin, NULL, 0) != NULL) {
 ! 					ATOMIC_INCL(frstats[out].fr_ads);
 ! 				} else {
 ! 					ATOMIC_INCL(frstats[out].fr_bads);
 ! 					pass = passo;
 ! 					continue;
 ! 				}
 ! 			}
   			break;
 + 		}
   	}
   	if (logged)
   		fin->fin_flx |= FI_DONTCACHE;