--- mm/slab.c~ 2003-07-14 03:36:48.000000000 +0000 +++ mm/slab.c 2003-08-15 13:59:34.000000000 +0000 @@ -2349,7 +2349,7 @@ int tofree; check_spinlock_acquired(cachep); - if (ac->touched) { + if (ac->touched && !force) { ac->touched = 0; } else if (ac->avail) { tofree = force ? ac->avail : (ac->limit+4)/5;