Make some adjustments to the buffer cache:
authorMatthew Dillon <dillon@dragonflybsd.org>
Fri, 18 Jul 2008 00:01:11 +0000 (00:01 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Fri, 18 Jul 2008 00:01:11 +0000 (00:01 +0000)
commit78a9b77f0d085818da065a0b5837f5244dc11d5b
tree1975d014c0dae3556a7ffefc81a3b727722b3242
parent448f8e020530b52195617f6e96d85313af35f550
Make some adjustments to the buffer cache:

* Retain B_ERROR instead of clearing it.

* Change B_ERROR's behavior.  It no longer causes the buffer to be
  invalidated on write.

* Change B_NOCACHE's behavior.  It no longer causes the buffer to be
  invalidated while the buffer is marked dirty.

* Code that was supposed to re-dirty a failed write buffer in brelse()
  was not running because biodone() cleared the fields brelse() was
  testing.  Move the code to biodone().

* When attempting to reflush B_DELWRI|B_ERROR'd buffers, sleep a tick
  to try to avoid a live-lock.
sys/kern/vfs_bio.c