John Polstra wrote:

On 18-Nov-2005 Scott Long wrote:

Poul-Henning Kamp wrote:

In message <[EMAIL PROTECTED]>, 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
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to