HEADSUP: disk_*(9) API change mega-patch
Kenneth D. Merry
ken at freebsd.org
Sun Feb 15 16:11:58 PST 2004
On Thu, Feb 05, 2004 at 11:02:47 +0100, Poul-Henning Kamp wrote:
>
> 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
In scsi_da.c, you have some changes that are not related to this:
- you've added a quirk entry. This should be run through njl.
- you're sending a TUR in dagetcapacity(), which shouldn't be necessary.
See rev 1.88 of scsi_cd.c and rev 1.55 of cam_periph.c.
Ken
--
Kenneth Merry
ken at FreeBSD.org
More information about the freebsd-current
mailing list