Fix a bug in vinvalbuf(). vinvalbuf() is usually called when attempting
authorMatthew Dillon <dillon@apollo.backplane.com>
Mon, 19 Jan 2009 17:38:27 +0000 (09:38 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Mon, 19 Jan 2009 17:38:27 +0000 (09:38 -0800)
commit1bb6119939711861a021ef2550a7a294db4cbf9a
tree6faaeb21217c9267ae8d69391c1f3a39beb0d0c8
parent74a9ed19edeca291b80d40dd4d597ec487c9d2ce
Fix a bug in vinvalbuf().  vinvalbuf() is usually called when attempting
to reclaim a vnode but can sometimes be called with V_SAVE when attempting
to make a vnode reclaimable.  In the latter case write races with other
threads can create new dirty buffers after the FSYNC returns.

Only assert that dirty buffers are not present if the vnode is undergoing
reclamation.

Reported-by: "Justin C. Sherrill" <justin@shiningsilence.com>
sys/kern/vfs_subr.c