HEADSUP: disk_*(9) API change mega-patch
Poul-Henning Kamp
phk at phk.freebsd.dk
Thu Feb 5 02:02:51 PST 2004
This is a mostly mechanical and largely untested patch, so please test
carefully if you have the necessary hardware.
Kernel patch:
http://phk.freebsd.dk/patch/disk.patch
Man-page update:
http://phk.freebsd.dk/patch/disk_man.patch
Patch version: 2004-02-05.1
This patch changes the disk_*(9) API so that ownership of the "struct
disk" is moved from the device drivers to GEOM. This removes a lot
of trouble from the disk_destroy(9) handling, which should be robust
with this patch.
After this change the API works as follows:
allocated struct disk with disk_alloc(), store pointer in softc.
populate fields, including d_unit and d_flags which were
previous arguments to disk_create().
call disk_create() with the pointer.
call disk_destroy() to signal that the device has disappeared.
NB: do not access struct disk in the driver anymore!
return any outstanding requests with suitable error.
At the same time: eliminate unused arguments from disk_create(9)
Reverse sense of DISKFLAG_NOGIANT, to DISKFLAG_NEEDSGIANT.
Two weeks review
--
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
More information about the freebsd-current
mailing list