cvs commit: src/sys/cam/scsi scsi_cd.c scsi_da.c src/sys/geom
geom_disk.c geom_disk.h geom_subr.c
Scott Long
scottl at samsco.org
Fri Nov 18 10:11:12 PST 2005
John Polstra wrote:
> On 18-Nov-2005 Scott Long wrote:
>
>>Poul-Henning Kamp wrote:
>>
>>>In message <437DEEE5.9040201 at samsco.org>, Scott Long writes:
>>>
>>>
>>>>Poul-Henning Kamp wrote:
>>>
>>>
>>>>>Most drivers seem to detach their internal state from the struct
>>>>>disk, and therefore they don't need this.
>>>>>
>>>>
>>>>So what makes CAM special in this regard?
>>>
>>>
>>>I dunno. Cam seems to have a different lifecycle for devices
>>>but I have never dived deep enough to figure it out.
>>>
>>
>>Ok. John's fix seems hackish (no offense John). I'll likely look at
>>this in the coming months.
>
>
> No offense taken, Scott. :-)
>
> I think what makes CAM special is that it reference counts all of its
> data structures, so they don't go away until the last close of the
> device even though the drive itself is long gone. In particular,
> dacleanup() isn't called until the last close, and it's what calls
> disk_destroy(). Geom needs to know when the physical drive is gone,
> not when CAM decides it can free its associated data structures. The
> disk_gone() idea was suggested by PHK, and it seems reasonable to me.
> But I've still got a lot to learn about both CAM and geom, so if you
> can come up with something better, then that would be great.
>
> John
Ok, I understand. I'm not sure if I have a better solution, but it is
something that I'll be looking at in the future. Thanks for the
explaination.
Scott
More information about the cvs-all
mailing list