Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Jun 2016 16:36:52 -0400
From:      "Kenneth D. Merry" <ken@FreeBSD.ORG>
To:        current@freebsd.org
Cc:        fs@freebsd.org
Subject:   Heads Up: struct disk KBI change
Message-ID:  <20160621203652.GA90745@mithlond.kdm.org>

next in thread | raw e-mail | index | archive | help

This will break binary compatibility for loadable modules that depend on
struct disk.  DISK_VERSION has been bumped, and I bumped __FreeBSD_version
in a subsequent change.

So, if you have module that uses struct disk, you'll need to recompile
against the latest version of head.

Ken

----- Forwarded message from "Kenneth D. Merry" <ken@FreeBSD.org> -----

Date: Tue, 21 Jun 2016 20:18:19 +0000 (UTC)
From: "Kenneth D. Merry" <ken@FreeBSD.org>
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
	svn-src-head@freebsd.org
Subject: svn commit: r302069 - head/sys/geom

Author: ken
Date: Tue Jun 21 20:18:19 2016
New Revision: 302069
URL: https://svnweb.freebsd.org/changeset/base/302069

Log:
  Fix a bug that caused da(4) instances to hang around after the underlying
  device is gone.
  
  The problem was that when disk_gone() is called, if the GEOM disk
  creation process has not yet happened, the withering process
  couldn't start.
  
  We didn't record any state in the GEOM disk code, and so the d_gone()
  callback to the da(4) driver never happened.
  
  The solution is to track the state of the creation process, and
  initiate the withering process from g_disk_create() if the disk is
  being created.
  
  This change does add fields to struct disk, and so I have bumped
  DISK_VERSION.
  
  geom_disk.c:	Track where we are in the disk creation process,
  		and check to see whether our underlying disk has
  		gone away or not.
  
  		In disk_gone(), set a new d_goneflag variable that
  		g_disk_create() can check to see if it needs to
  		clean up the disk instance.
  
  geom_disk.h:    Add a mutex to struct disk (for internal use) disk
  		init level, and a gone flag.
  
  		Bump DISK_VERSION because the size of struct disk has
  		changed and fields have been added at the beginning.
  
  Sponsored by:	Spectra Logic
  Approved by:	re (marius)

Modified:
  head/sys/geom/geom_disk.c
  head/sys/geom/geom_disk.h

----- End forwarded message -----

-- 
Kenneth Merry
ken@FreeBSD.ORG



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160621203652.GA90745>