Lines Matching refs:pi
62 struct path_info *pi, *next; in free_paths() local
64 list_for_each_entry_safe(pi, next, paths, list) { in free_paths()
65 list_del(&pi->list); in free_paths()
66 kfree(pi); in free_paths()
84 struct path_info *pi; in st_status() local
89 pi = path->pscontext; in st_status()
93 DMEMIT("%d %u ", atomic_read(&pi->in_flight_size), in st_status()
94 pi->relative_throughput); in st_status()
97 DMEMIT("%u %u ", pi->repeat_count, in st_status()
98 pi->relative_throughput); in st_status()
110 struct path_info *pi; in st_add_path() local
145 pi = kmalloc(sizeof(*pi), GFP_KERNEL); in st_add_path()
146 if (!pi) { in st_add_path()
151 pi->path = path; in st_add_path()
152 pi->repeat_count = repeat_count; in st_add_path()
153 pi->relative_throughput = relative_throughput; in st_add_path()
154 atomic_set(&pi->in_flight_size, 0); in st_add_path()
156 path->pscontext = pi; in st_add_path()
158 list_add_tail(&pi->list, &s->valid_paths); in st_add_path()
166 struct path_info *pi = path->pscontext; in st_fail_path() local
168 list_move(&pi->list, &s->failed_paths); in st_fail_path()
174 struct path_info *pi = path->pscontext; in st_reinstate_path() local
176 list_move_tail(&pi->list, &s->valid_paths); in st_reinstate_path()
262 struct path_info *pi = NULL, *best = NULL; in st_select_path() local
270 list_for_each_entry(pi, &s->valid_paths, list) in st_select_path()
271 if (!best || (st_compare_load(pi, best, nr_bytes) < 0)) in st_select_path()
272 best = pi; in st_select_path()
285 struct path_info *pi = path->pscontext; in st_start_io() local
287 atomic_add(nr_bytes, &pi->in_flight_size); in st_start_io()
295 struct path_info *pi = path->pscontext; in st_end_io() local
297 atomic_sub(nr_bytes, &pi->in_flight_size); in st_end_io()