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 18:11:12 GMT 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-src mailing list