diff --git a/src/lb_fwlc.c b/src/lb_fwlc.c index 10ad147b5..a082505e3 100644 --- a/src/lb_fwlc.c +++ b/src/lb_fwlc.c @@ -496,10 +496,10 @@ static void fwlc_srv_reposition(struct server *s) */ mt_list_unlock_full(&s->lb_mt_list, list); - HA_RWLOCK_RDUNLOCK(LBPRM_LOCK, &s->proxy->lbprm.lock); - s->tree_elt = tree_elt; + HA_RWLOCK_RDUNLOCK(LBPRM_LOCK, &s->proxy->lbprm.lock); + if (allocated_elt) s->free_elt = allocated_elt;