On Wed, Nov 02, 2011 at 09:24:59AM +0000, Alexander Motin wrote: > Author: mav > Date: Wed Nov 2 09:24:59 2011 > New Revision: 227015 > URL: http://svn.freebsd.org/changeset/base/227015 > > Log: > Add mutex and two flags to make orphan() call properly asynchronous: > - delay consumer closing and detaching on orphan() until all I/Os complete; > - prevent new I/Os submission after orphan() called. > Previous implementation could destroy consumers still having active > requests and worked only because of global workaround made on GEOM level.
Alexander, I'm not sure I agree with your recent changes to address this. The checks in GEOM were there to avoid the need for counting outstanding I/O requests in every single GEOM class. Why do you think the checks in GEOM are not good enough? Can we design solution that can be implemented in the framework itself, so simple GEOM classes can stay simple? -- Pawel Jakub Dawidek http://www.wheelsystems.com FreeBSD committer http://www.FreeBSD.org Am I Evil? Yes, I Am! http://yomoli.com
pgpA29DCaEzbe.pgp
Description: PGP signature