On Thu, 2009-01-01 at 12:23 -0500, Peter Memishian wrote:
> > > If we're called with an underlying interface, then we will always try to
>  > > set ilw_ipmp_ill via ipmp_ill_hold_ipmp_ill().  That call *could* fail if
>  > > e.g.  the IPMP ill was changing or somesuch.  In that case though, we
>  > > won't walk to the IPMP ill because ilw_ipmp_ill wil be NULL, and 
> therefore
>  > > we won't set ilw_walk_ill() to it.  In other words, the code is written
>  > > such that we always acquire holds on all of the ills that we will walk
>  > > over (but there could be a bug.)
>  > 
>  > My concern wasn't that we're not holding a reference to the ill (I see
>  > that ipmp_ill_hold_ipmp_ill() does that), but rather we're not bumping
>  > ill_ilm_walker_cnt for the IPMP interface.  Is that not required?
> 
> We bump ill_ilm_walker_cnt via ill_ilm_walker_hold() in ilm_walker_start():
> 
> -->     ill_ilm_walker_hold(ill);
>         if (ilw->ilw_ipmp_ill != NULL)
> -->             ill_ilm_walker_hold(ilw->ilw_ipmp_ill);

Ah, yes, it's there.  Thanks.
-Seb



Reply via email to