Konstantin Belousov 19efd8a5a8 In vgonel(), postpone setting BO_DEAD until VOP_RECLAIM() is called,
if vnode is VMIO.  For VMIO vnodes, set BO_DEAD in vm_object_terminate().

The vnode_destroy_object(), when calling into vm_object_terminate(),
must be able to flush buffers.  BO_DEAD purpose is to quickly destroy
buffers on write when the underlying vnode is not operable any more
(one example is the devfs node after geom is gone).  Setting BO_DEAD
for reclaiming vnode before object is terminated is premature, and
results in unability to flush buffers with live SU dependencies from
vinvalbuf() in vm_object_terminate().

Reported by:	David Cross <dcrosstech@gmail.com>
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
2016-07-11 14:19:09 +00:00
..
2015-04-22 14:38:58 +00:00
2016-06-09 18:27:41 +00:00
2016-02-23 23:37:10 +00:00
2015-01-22 11:12:42 +00:00
2016-04-29 22:15:33 +00:00
2015-03-17 14:16:50 +00:00
2016-04-14 17:07:26 +00:00
2016-04-29 21:54:28 +00:00