Lines Matching refs:dest

572 static inline int ip_vs_dest_totalconns(struct ip_vs_dest *dest)  in ip_vs_dest_totalconns()  argument
574 return atomic_read(&dest->activeconns) in ip_vs_dest_totalconns()
575 + atomic_read(&dest->inactconns); in ip_vs_dest_totalconns()
583 ip_vs_bind_dest(struct ip_vs_conn *cp, struct ip_vs_dest *dest) in ip_vs_bind_dest() argument
589 if (!dest) in ip_vs_bind_dest()
593 ip_vs_dest_hold(dest); in ip_vs_bind_dest()
595 conn_flags = atomic_read(&dest->conn_flags); in ip_vs_bind_dest()
611 cp->dest = dest; in ip_vs_bind_dest()
622 refcount_read(&dest->refcnt)); in ip_vs_bind_dest()
631 atomic_inc(&dest->activeconns); in ip_vs_bind_dest()
633 atomic_inc(&dest->inactconns); in ip_vs_bind_dest()
637 atomic_inc(&dest->persistconns); in ip_vs_bind_dest()
640 if (dest->u_threshold != 0 && in ip_vs_bind_dest()
641 ip_vs_dest_totalconns(dest) >= dest->u_threshold) in ip_vs_bind_dest()
642 dest->flags |= IP_VS_DEST_F_OVERLOAD; in ip_vs_bind_dest()
652 struct ip_vs_dest *dest; in ip_vs_try_bind_dest() local
661 dest = ip_vs_find_dest(cp->ipvs, cp->af, cp->af, &cp->daddr, in ip_vs_try_bind_dest()
664 if (dest) { in ip_vs_try_bind_dest()
668 if (cp->dest) { in ip_vs_try_bind_dest()
679 ip_vs_bind_dest(cp, dest); in ip_vs_try_bind_dest()
705 struct ip_vs_dest *dest = cp->dest; in ip_vs_unbind_dest() local
707 if (!dest) in ip_vs_unbind_dest()
719 refcount_read(&dest->refcnt)); in ip_vs_unbind_dest()
726 atomic_dec(&dest->inactconns); in ip_vs_unbind_dest()
728 atomic_dec(&dest->activeconns); in ip_vs_unbind_dest()
733 atomic_dec(&dest->persistconns); in ip_vs_unbind_dest()
736 if (dest->l_threshold != 0) { in ip_vs_unbind_dest()
737 if (ip_vs_dest_totalconns(dest) < dest->l_threshold) in ip_vs_unbind_dest()
738 dest->flags &= ~IP_VS_DEST_F_OVERLOAD; in ip_vs_unbind_dest()
739 } else if (dest->u_threshold != 0) { in ip_vs_unbind_dest()
740 if (ip_vs_dest_totalconns(dest) * 4 < dest->u_threshold * 3) in ip_vs_unbind_dest()
741 dest->flags &= ~IP_VS_DEST_F_OVERLOAD; in ip_vs_unbind_dest()
743 if (dest->flags & IP_VS_DEST_F_OVERLOAD) in ip_vs_unbind_dest()
744 dest->flags &= ~IP_VS_DEST_F_OVERLOAD; in ip_vs_unbind_dest()
747 ip_vs_dest_put(dest); in ip_vs_unbind_dest()
751 struct ip_vs_dest *dest) in expire_quiescent_template() argument
755 (atomic_read(&dest->weight) == 0); in expire_quiescent_template()
768 struct ip_vs_dest *dest = ct->dest; in ip_vs_check_template() local
774 if ((dest == NULL) || in ip_vs_check_template()
775 !(dest->flags & IP_VS_DEST_F_AVAILABLE) || in ip_vs_check_template()
776 expire_quiescent_template(ipvs, dest) || in ip_vs_check_template()
777 (cdest && (dest != cdest))) { in ip_vs_check_template()
942 struct ip_vs_dest *dest, __u32 fwmark) in ip_vs_conn_new() argument
1006 cp->dest = NULL; in ip_vs_conn_new()
1007 ip_vs_bind_dest(cp, dest); in ip_vs_conn_new()
1293 if (!cp->dest) in ip_vs_conn_ops_mode()
1295 svc = rcu_dereference(cp->dest->svc); in ip_vs_conn_ops_mode()
1409 struct ip_vs_dest *dest; in ip_vs_expire_nodest_conn_flush() local
1417 dest = cp->dest; in ip_vs_expire_nodest_conn_flush()
1418 if (!dest || (dest->flags & IP_VS_DEST_F_AVAILABLE)) in ip_vs_expire_nodest_conn_flush()