Lines Matching refs:klist_node
9 * "node" (struct klist_node) objects. For struct klist, a spinlock is
11 * klist_node provides a pointer to the klist that owns it and a kref
24 * reference count of the previous klist_node and increments the count of
25 * the next klist_node. It then drops the lock and returns.
47 static struct klist *knode_klist(struct klist_node *knode)
53 static bool knode_dead(struct klist_node *knode)
58 static void knode_set_klist(struct klist_node *knode, struct klist *klist)
65 static void knode_kill(struct klist_node *knode)
78 * Initialises the klist structure. If the klist_node structures are
84 void klist_init(struct klist *k, void (*get)(struct klist_node *),
85 void (*put)(struct klist_node *))
94 static void add_head(struct klist *k, struct klist_node *n)
101 static void add_tail(struct klist *k, struct klist_node *n)
108 static void klist_node_init(struct klist *k, struct klist_node *n)
118 * klist_add_head - Initialize a klist_node and add it to front.
122 void klist_add_head(struct klist_node *n, struct klist *k)
130 * klist_add_tail - Initialize a klist_node and add it to back.
134 void klist_add_tail(struct klist_node *n, struct klist *k)
142 * klist_add_behind - Init a klist_node and add it after an existing node
146 void klist_add_behind(struct klist_node *n, struct klist_node *pos)
158 * klist_add_before - Init a klist_node and add it before an existing node
162 void klist_add_before(struct klist_node *n, struct klist_node *pos)
175 struct klist_node *node;
186 struct klist_node *n = container_of(kref, struct klist_node, n_ref);
204 static int klist_dec_and_del(struct klist_node *n)
209 static void klist_put(struct klist_node *n, bool kill)
212 void (*put)(struct klist_node *) = k->put;
228 void klist_del(struct klist_node *n)
238 void klist_remove(struct klist_node *n)
265 int klist_node_attached(struct klist_node *n)
281 struct klist_node *n)
320 static struct klist_node *to_klist_node(struct list_head *n)
322 return container_of(n, struct klist_node, n_node);
333 struct klist_node *klist_prev(struct klist_iter *i)
335 void (*put)(struct klist_node *) = i->i_klist->put;
336 struct klist_node *last = i->i_cur;
337 struct klist_node *prev;
375 struct klist_node *klist_next(struct klist_iter *i)
377 void (*put)(struct klist_node *) = i->i_klist->put;
378 struct klist_node *last = i->i_cur;
379 struct klist_node *next;