Re2: file weirdness / vnlru process issues
Matthew Dillon
dillon at apollo.backplane.com
Wed Oct 20 11:11:19 PDT 2004
:Woop, maybe not perfect yet. During another 'make realquickrel', I got
:a panic (although it completed successfully a few times previously - but
:this one was to a different destination):
:
:panic: assertion: ncp != NULL in cache_cleanneg
:
:I gather that's related to the same bit of code as before, i.e. cleaning
:out negative hits.
:
:-Chris
This is my fault. I copied the assertion from the old code to
the new code and it is simply not correct any more in the new
code. NULL is actually allowed there, but we have to break out
of the loop if we get one.
Here's the patch, please test.
-Matt
Matthew Dillon
<dillon at xxxxxxxxxxxxx>
Index: kern/vfs_cache.c
===================================================================
RCS file: /cvs/src/sys/kern/vfs_cache.c,v
retrieving revision 1.39
diff -u -r1.39 vfs_cache.c
--- kern/vfs_cache.c 19 Oct 2004 05:55:34 -0000 1.39
+++ kern/vfs_cache.c 20 Oct 2004 18:10:26 -0000
@@ -1439,7 +1439,10 @@
*/
while (count) {
ncp = TAILQ_FIRST(&ncneglist);
- KKASSERT(ncp != NULL);
+ if (ncp == NULL) {
+ KKASSERT(numneg == 0);
+ break;
+ }
TAILQ_REMOVE(&ncneglist, ncp, nc_vnode);
TAILQ_INSERT_TAIL(&ncneglist, ncp, nc_vnode);
if (cache_get_nonblock(ncp) == 0)
More information about the Bugs
mailing list