From owner-svn-src-head@FreeBSD.ORG Mon Jun 25 04:26:35 2012 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C47F11065680; Mon, 25 Jun 2012 04:26:35 +0000 (UTC) (envelope-from ken@kdm.org) Received: from nargothrond.kdm.org (nargothrond.kdm.org [70.56.43.81]) by mx1.freebsd.org (Postfix) with ESMTP id 6E93F8FC15; Mon, 25 Jun 2012 04:26:35 +0000 (UTC) Received: from nargothrond.kdm.org (localhost [127.0.0.1]) by nargothrond.kdm.org (8.14.2/8.14.2) with ESMTP id q5P4QYN6055657; Sun, 24 Jun 2012 22:26:34 -0600 (MDT) (envelope-from ken@nargothrond.kdm.org) Received: (from ken@localhost) by nargothrond.kdm.org (8.14.2/8.14.2/Submit) id q5P4QY1k055656; Sun, 24 Jun 2012 22:26:34 -0600 (MDT) (envelope-from ken) Date: Sun, 24 Jun 2012 22:26:34 -0600 From: "Kenneth D. Merry" To: "Andrey V. Elsukov" Message-ID: <20120625042634.GA55640@nargothrond.kdm.org> References: <201206240429.q5O4T3D7087012@svn.freebsd.org> <4FE7DF6F.6020007@FreeBSD.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4FE7DF6F.6020007@FreeBSD.org> User-Agent: Mutt/1.4.2i Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r237518 - in head: share/man/man9 sys/cam/scsi sys/dev/xen/blkfront sys/geom X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jun 2012 04:26:35 -0000 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 ken@FreeBSD.ORG