mckusick 16ad96c43c When considering a vnode for reuse in getnewvnode, we call
vcanrecycle to check a free vnode's availability. If it is
available, vcanrecycle returns an error code of zero and the
vnode in question locked. The getnewvnode routine then used
to call vn_start_write with the V_NOWAIT flag. If the filesystem
was suspended while taking a snapshot, the vn_start_write would
fail but getnewvnode would fail to unlock the vnode, instead
leaving it locked on the freelist. The result would be that the
vnode would be locked forever and would eventually hang the
system with a race to the root when it was attempted to recycle
it. This fix moves the vn_start_write check into vcanrecycle
where it will properly unlock the vnode if it is unavailable
for recycling due to filesystem suspension.

Sponsored by:	DARPA & NAI Labs.
2002-10-11 01:04:14 +00:00
..
2002-03-25 13:52:45 +00:00
2002-10-02 09:09:25 +00:00
2002-09-05 11:42:03 +00:00
2002-06-29 02:00:02 +00:00
2002-09-11 08:13:56 +00:00
2002-03-19 21:25:46 +00:00
2002-03-19 21:25:46 +00:00
2002-10-01 13:15:11 +00:00
2002-10-02 09:09:25 +00:00
2002-09-11 08:13:56 +00:00
2002-09-11 08:13:56 +00:00
2002-08-15 02:10:12 +00:00
2002-03-19 21:25:46 +00:00
2002-10-07 04:13:21 +00:00
2002-09-28 17:46:30 +00:00