> > ip_quiesce_conn() -> ilg_delete_all() -> ip_delmulti()
 > 
 > Hmm, but I'm still a bit confused.  For a module close (which is what is
 > happening here), ip_quiesce_conn() doesn't get called.  In ip_close():
 > 
 >         /*
 >          * Call the appropriate delete routine depending on whether this is
 >          * a module or device.
 >          */
 >         if (WR(q)->q_next != NULL) {
 >                 /* This is a module close */
 >                 return (ip_modclose((ill_t *)q->q_ptr));
 >         }
 > 
 >         connp = q->q_ptr;
 >         ip_quiesce_conn(connp);
 > 
 > For the ip_modclose() case, something other than ip_quiesce_conn() has
 > to clean up the ilm's.  I'm guessing something in ill_delete() must do
 > this.

Yep, ill_delete() -> reset_conn_ill() -> conn_delete_ill() -> ilg_delete()
-> ip_delmulti()

-- 
meem

Reply via email to