Lines Matching refs:dir

17 void ref_tracker_dir_exit(struct ref_tracker_dir *dir)  in ref_tracker_dir_exit()  argument
23 dir->dead = true; in ref_tracker_dir_exit()
24 spin_lock_irqsave(&dir->lock, flags); in ref_tracker_dir_exit()
25 list_for_each_entry_safe(tracker, n, &dir->quarantine, head) { in ref_tracker_dir_exit()
28 dir->quarantine_avail++; in ref_tracker_dir_exit()
30 list_for_each_entry_safe(tracker, n, &dir->list, head) { in ref_tracker_dir_exit()
38 spin_unlock_irqrestore(&dir->lock, flags); in ref_tracker_dir_exit()
40 WARN_ON_ONCE(refcount_read(&dir->untracked) != 1); in ref_tracker_dir_exit()
41 WARN_ON_ONCE(refcount_read(&dir->no_tracker) != 1); in ref_tracker_dir_exit()
45 void ref_tracker_dir_print(struct ref_tracker_dir *dir, in ref_tracker_dir_print() argument
52 spin_lock_irqsave(&dir->lock, flags); in ref_tracker_dir_print()
53 list_for_each_entry(tracker, &dir->list, head) { in ref_tracker_dir_print()
63 spin_unlock_irqrestore(&dir->lock, flags); in ref_tracker_dir_print()
67 int ref_tracker_alloc(struct ref_tracker_dir *dir, in ref_tracker_alloc() argument
77 WARN_ON_ONCE(dir->dead); in ref_tracker_alloc()
80 refcount_inc(&dir->no_tracker); in ref_tracker_alloc()
88 refcount_inc(&dir->untracked); in ref_tracker_alloc()
94 spin_lock_irqsave(&dir->lock, flags); in ref_tracker_alloc()
95 list_add(&tracker->head, &dir->list); in ref_tracker_alloc()
96 spin_unlock_irqrestore(&dir->lock, flags); in ref_tracker_alloc()
101 int ref_tracker_free(struct ref_tracker_dir *dir, in ref_tracker_free() argument
110 WARN_ON_ONCE(dir->dead); in ref_tracker_free()
113 refcount_dec(&dir->no_tracker); in ref_tracker_free()
118 refcount_dec(&dir->untracked); in ref_tracker_free()
124 spin_lock_irqsave(&dir->lock, flags); in ref_tracker_free()
135 spin_unlock_irqrestore(&dir->lock, flags); in ref_tracker_free()
143 list_move_tail(&tracker->head, &dir->quarantine); in ref_tracker_free()
144 if (!dir->quarantine_avail) { in ref_tracker_free()
145 tracker = list_first_entry(&dir->quarantine, struct ref_tracker, head); in ref_tracker_free()
148 dir->quarantine_avail--; in ref_tracker_free()
151 spin_unlock_irqrestore(&dir->lock, flags); in ref_tracker_free()