Lines Matching refs:tracker
35 struct ref_tracker *tracker; in ref_tracker_get_stats() local
44 list_for_each_entry(tracker, &dir->list, head) { in ref_tracker_get_stats()
45 depot_stack_handle_t stack = tracker->alloc_stack_handle; in ref_tracker_get_stats()
159 struct ref_tracker *tracker, *n; in ref_tracker_dir_exit() local
165 list_for_each_entry_safe(tracker, n, &dir->quarantine, head) { in ref_tracker_dir_exit()
166 list_del(&tracker->head); in ref_tracker_dir_exit()
167 kfree(tracker); in ref_tracker_dir_exit()
173 list_for_each_entry_safe(tracker, n, &dir->list, head) { in ref_tracker_dir_exit()
174 list_del(&tracker->head); in ref_tracker_dir_exit()
175 kfree(tracker); in ref_tracker_dir_exit()
190 struct ref_tracker *tracker; in ref_tracker_alloc() local
203 *trackerp = tracker = kzalloc(sizeof(*tracker), gfp_mask); in ref_tracker_alloc()
204 if (unlikely(!tracker)) { in ref_tracker_alloc()
210 tracker->alloc_stack_handle = stack_depot_save(entries, nr_entries, gfp); in ref_tracker_alloc()
213 list_add(&tracker->head, &dir->list); in ref_tracker_alloc()
224 struct ref_tracker *tracker; in ref_tracker_free() local
234 tracker = *trackerp; in ref_tracker_free()
235 if (!tracker) { in ref_tracker_free()
244 if (tracker->dead) { in ref_tracker_free()
246 if (tracker->alloc_stack_handle) { in ref_tracker_free()
248 stack_depot_print(tracker->alloc_stack_handle); in ref_tracker_free()
250 if (tracker->free_stack_handle) { in ref_tracker_free()
252 stack_depot_print(tracker->free_stack_handle); in ref_tracker_free()
258 tracker->dead = true; in ref_tracker_free()
260 tracker->free_stack_handle = stack_handle; in ref_tracker_free()
262 list_move_tail(&tracker->head, &dir->quarantine); in ref_tracker_free()
264 tracker = list_first_entry(&dir->quarantine, struct ref_tracker, head); in ref_tracker_free()
265 list_del(&tracker->head); in ref_tracker_free()
268 tracker = NULL; in ref_tracker_free()
272 kfree(tracker); in ref_tracker_free()