Lines Matching refs:pi
65 struct path_info *pi, *next;
67 list_for_each_entry_safe(pi, next, paths, list) {
68 list_del(&pi->list);
69 kfree(pi);
87 struct path_info *pi;
92 pi = path->pscontext;
96 DMEMIT("%d %u ", atomic_read(&pi->in_flight_size),
97 pi->relative_throughput);
100 DMEMIT("%u %u ", pi->repeat_count,
101 pi->relative_throughput);
116 struct path_info *pi;
156 pi = kmalloc(sizeof(*pi), GFP_KERNEL);
157 if (!pi) {
162 pi->path = path;
163 pi->repeat_count = repeat_count;
164 pi->relative_throughput = relative_throughput;
165 atomic_set(&pi->in_flight_size, 0);
167 path->pscontext = pi;
170 list_add_tail(&pi->list, &s->valid_paths);
179 struct path_info *pi = path->pscontext;
183 list_move(&pi->list, &s->failed_paths);
190 struct path_info *pi = path->pscontext;
194 list_move_tail(&pi->list, &s->valid_paths);
211 * ('pi->in-flight-size' + 'incoming') / 'pi->relative_throughput'
259 * Size may be too big for multiplying pi->relative_throughput
280 struct path_info *pi = NULL, *best = NULL;
288 list_for_each_entry(pi, &s->valid_paths, list)
289 if (!best || (st_compare_load(pi, best, nr_bytes) < 0))
290 best = pi;
307 struct path_info *pi = path->pscontext;
309 atomic_add(nr_bytes, &pi->in_flight_size);
317 struct path_info *pi = path->pscontext;
319 atomic_sub(nr_bytes, &pi->in_flight_size);