version 1.93, 2004/03/08 22:48:09 |
version 1.93.2.1, 2004/06/22 08:58:42 |
Line 957 pool_do_put(struct pool *pp, void *v) |
|
Line 957 pool_do_put(struct pool *pp, void *v) |
|
* If this page is now empty, do one of two things: |
* If this page is now empty, do one of two things: |
* |
* |
* (1) If we have more pages than the page high water mark, |
* (1) If we have more pages than the page high water mark, |
* or if we are flagged as immediately freeing back idle |
* free the page back to the system. ONLY CONSIDER |
* pages, free the page back to the system. ONLY CONSIDER |
|
* FREEING BACK A PAGE IF WE HAVE MORE THAN OUR MINIMUM PAGE |
* FREEING BACK A PAGE IF WE HAVE MORE THAN OUR MINIMUM PAGE |
* CLAIM. |
* CLAIM. |
* |
* |
Line 971 pool_do_put(struct pool *pp, void *v) |
|
Line 970 pool_do_put(struct pool *pp, void *v) |
|
pp->pr_nidle++; |
pp->pr_nidle++; |
if (pp->pr_npages > pp->pr_minpages && |
if (pp->pr_npages > pp->pr_minpages && |
(pp->pr_npages > pp->pr_maxpages || |
(pp->pr_npages > pp->pr_maxpages || |
(pp->pr_roflags & PR_IMMEDRELEASE) != 0 || |
|
(pp->pr_alloc->pa_flags & PA_WANT) != 0)) { |
(pp->pr_alloc->pa_flags & PA_WANT) != 0)) { |
simple_unlock(&pp->pr_slock); |
simple_unlock(&pp->pr_slock); |
pr_rmpage(pp, ph, NULL); |
pr_rmpage(pp, ph, NULL); |