diff options
author | tegge <tegge@FreeBSD.org> | 2006-02-02 21:37:39 +0000 |
---|---|---|
committer | tegge <tegge@FreeBSD.org> | 2006-02-02 21:37:39 +0000 |
commit | 78439a3a9037bde7a2bc1f43e1ffb8ee38bc1892 (patch) | |
tree | fcca12785209540839490f6caa949dae7a51e74f /sys/vm/vm_fault.c | |
parent | e92441a62f29aaeab7aea6b98a836237046cf0c6 (diff) | |
download | FreeBSD-src-78439a3a9037bde7a2bc1f43e1ffb8ee38bc1892.zip FreeBSD-src-78439a3a9037bde7a2bc1f43e1ffb8ee38bc1892.tar.gz |
For low memory situations, non-VMIO buffers didnt't release pages back to
the system when brelse() was called with B_RELBUF set on the buffer. This
could be a problem when the system was low on memory, had many buffers on
QUEUE_EMPTYKVA and started to traverse directories. For each getnewbuf(),
pages were allocated from the system, driving the free reserve downwards.
For each brelse(), the system put the buffer on QUEUE_CLEAN, with B_INVAL
set.
This commit changes the semantics of B_RELBUF to also free pages from
non-VMIO buffers.
Reviewed by: alc
Diffstat (limited to 'sys/vm/vm_fault.c')
0 files changed, 0 insertions, 0 deletions