On Mon, Jun 25, 2012 at 07:47:59 +0400, Andrey V. Elsukov wrote: > On 24.06.2012 8:29, Kenneth D. Merry wrote: > > Author: ken > > Date: Sun Jun 24 04:29:03 2012 > > New Revision: 237518 > > URL: http://svn.freebsd.org/changeset/base/237518 > > > > Log: > > Fix a bug which causes a panic in daopen(). The panic is caused by > > a da(4) instance going away while GEOM is still probing it. > > > > In this case, the GEOM disk class instance has been created by > > disk_create(), and the taste of the disk is queued in the GEOM > > event queue. > > > > While that event is queued, the da(4) instance goes away. When the > > open call comes into the da(4) driver, it dereferences the freed > > (but non-NULL) peripheral pointer provided by GEOM, which results > > in a panic. > > > > The solution is to add a callback to the GEOM disk code that is > > called when all of its resources are cleaned up. This is > > implemented inside GEOM by adding an optional callback that is > > called when all consumers have detached from a provider, and the > > provider is about to be deleted. > > > > > geom.h: Add a new, optional, providergone callback that > > is called when a provider is about to be deleted. > > > > MFC after: 5 days > > This will break ABI. If you want to merge this change, > it is better to use one of spare field in the geom structures.
Done, thanks! Ken -- Kenneth Merry k...@freebsd.org _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"