diff options
Diffstat (limited to 'lib/klist.c')
-rw-r--r-- | lib/klist.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/klist.c b/lib/klist.c index 6f760424648b..02177d72dc89 100644 --- a/lib/klist.c +++ b/lib/klist.c | |||
@@ -112,6 +112,7 @@ static void klist_release(struct kref * kref) | |||
112 | struct klist_node * n = container_of(kref, struct klist_node, n_ref); | 112 | struct klist_node * n = container_of(kref, struct klist_node, n_ref); |
113 | list_del(&n->n_node); | 113 | list_del(&n->n_node); |
114 | complete(&n->n_removed); | 114 | complete(&n->n_removed); |
115 | n->n_klist = NULL; | ||
115 | } | 116 | } |
116 | 117 | ||
117 | static int klist_dec_and_del(struct klist_node * n) | 118 | static int klist_dec_and_del(struct klist_node * n) |
@@ -154,6 +155,19 @@ EXPORT_SYMBOL_GPL(klist_remove); | |||
154 | 155 | ||
155 | 156 | ||
156 | /** | 157 | /** |
158 | * klist_node_attached - Say whether a node is bound to a list or not. | ||
159 | * @n: Node that we're testing. | ||
160 | */ | ||
161 | |||
162 | int klist_node_attached(struct klist_node * n) | ||
163 | { | ||
164 | return (n->n_klist != NULL); | ||
165 | } | ||
166 | |||
167 | EXPORT_SYMBOL_GPL(klist_node_attached); | ||
168 | |||
169 | |||
170 | /** | ||
157 | * klist_iter_init_node - Initialize a klist_iter structure. | 171 | * klist_iter_init_node - Initialize a klist_iter structure. |
158 | * @k: klist we're iterating. | 172 | * @k: klist we're iterating. |
159 | * @i: klist_iter we're filling. | 173 | * @i: klist_iter we're filling. |
@@ -246,3 +260,5 @@ struct klist_node * klist_next(struct klist_iter * i) | |||
246 | } | 260 | } |
247 | 261 | ||
248 | EXPORT_SYMBOL_GPL(klist_next); | 262 | EXPORT_SYMBOL_GPL(klist_next); |
263 | |||
264 | |||