]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Workaround the problem introduced by combination of r162200 and r215687.
authorAlexander Motin <mav@FreeBSD.org>
Tue, 1 Nov 2011 08:57:49 +0000 (08:57 +0000)
committerAlexander Motin <mav@FreeBSD.org>
Tue, 1 Nov 2011 08:57:49 +0000 (08:57 +0000)
commit20a5d5dc604e32faeadf7a22c90b10e6f354bd72
tree9f2a0593b556ae8bf9d2699568cbb2ced5e9d210
parent550d397e7d8165c8dfe0b3d20ef2beeaf9c2a32c
Workaround the problem introduced by combination of r162200 and r215687.
r162200 delays provider orphanization until all running requests complete,
to workaround broken orphan() method implementation in some classes.
r215687 removes persistent periodic (10Hz) event thread wake ups.
Together these changes can indefinitely delay orphanization until some
other event wake up the event thread. One consequence of this is inability
of CAM to destroy device disconnected when busy and, as consequence, create
new one after reconnection.

While the best solution would be to revert r162200, it is not easy, as
some classes still look broken in that way. Instead conditionally wake up
event thread if there are some providers waiting for orphanization.

MFC after: 1 week
sys/geom/geom_event.c