Lines Matching defs:dest

55 	struct ip_vs_dest __rcu	*dest;	/* real server (cache) */
74 static inline bool is_unavailable(struct ip_vs_dest *dest)
76 return atomic_read(&dest->weight) <= 0 ||
77 dest->flags & IP_VS_DEST_F_OVERLOAD;
108 struct ip_vs_dest *dest = rcu_dereference(s->buckets[hash].dest);
110 return (!dest || is_unavailable(dest)) ? NULL : dest;
126 struct ip_vs_dest *dest;
128 /* first try the dest it's supposed to go to */
130 dest = rcu_dereference(s->buckets[ihash].dest);
131 if (!dest)
133 if (!is_unavailable(dest))
134 return dest;
137 IP_VS_DBG_ADDR(dest->af, &dest->addr), ntohs(dest->port));
139 /* if the original dest is unavailable, loop around the table
140 * starting from ihash to find a new dest
145 dest = rcu_dereference(s->buckets[hash].dest);
146 if (!dest)
148 if (!is_unavailable(dest))
149 return dest;
152 IP_VS_DBG_ADDR(dest->af, &dest->addr),
153 ntohs(dest->port), roffset);
168 struct ip_vs_dest *dest;
177 dest = rcu_dereference_protected(b->dest, 1);
178 if (dest)
179 ip_vs_dest_put(dest);
181 RCU_INIT_POINTER(b->dest, NULL);
186 dest = list_entry(p, struct ip_vs_dest, n_list);
187 ip_vs_dest_hold(dest);
188 RCU_INIT_POINTER(b->dest, dest);
190 IP_VS_DBG_BUF(6, "assigned i: %d dest: %s weight: %d\n",
191 i, IP_VS_DBG_ADDR(dest->af, &dest->addr),
192 atomic_read(&dest->weight));
194 /* Don't move to next dest until filling weight */
195 if (++d_count >= atomic_read(&dest->weight)) {
214 struct ip_vs_dest *dest;
218 dest = rcu_dereference_protected(b->dest, 1);
219 if (dest) {
220 ip_vs_dest_put(dest);
221 RCU_INIT_POINTER(b->dest, NULL);
264 struct ip_vs_dest *dest)
312 struct ip_vs_dest *dest;
327 dest = ip_vs_sh_get_fallback(svc, s, hash_addr, port);
329 dest = ip_vs_sh_get(svc, s, hash_addr, port);
331 if (!dest) {
338 IP_VS_DBG_ADDR(dest->af, &dest->addr),
339 ntohs(dest->port));
341 return dest;