Heads Up: struct disk KBI change
Kenneth D. Merry
ken at FreeBSD.ORG
Tue Jun 21 20:36:56 UTC 2016
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 at FreeBSD.org> -----
Date: Tue, 21 Jun 2016 20:18:19 +0000 (UTC)
From: "Kenneth D. Merry" <ken at FreeBSD.org>
To: src-committers at freebsd.org, svn-src-all at freebsd.org,
svn-src-head at 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 at FreeBSD.ORG
More information about the freebsd-fs
mailing list