[PATCH] klist: fix klist to have the same klist_add semantics as list_head
[linux-2.6.git] / lib / klist.c
index 02177d7..a70c836 100644 (file)
@@ -79,11 +79,11 @@ static void klist_node_init(struct klist * k, struct klist_node * n)
 
 /**
  *     klist_add_head - Initialize a klist_node and add it to front.
- *     @k:     klist it's going on.
  *     @n:     node we're adding.
+ *     @k:     klist it's going on.
  */
 
-void klist_add_head(struct klist * k, struct klist_node * n)
+void klist_add_head(struct klist_node * n, struct klist * k)
 {
        klist_node_init(k, n);
        add_head(k, n);
@@ -94,11 +94,11 @@ EXPORT_SYMBOL_GPL(klist_add_head);
 
 /**
  *     klist_add_tail - Initialize a klist_node and add it to back.
- *     @k:     klist it's going on.
  *     @n:     node we're adding.
+ *     @k:     klist it's going on.
  */
 
-void klist_add_tail(struct klist * k, struct klist_node * n)
+void klist_add_tail(struct klist_node * n, struct klist * k)
 {
        klist_node_init(k, n);
        add_tail(k, n);
@@ -145,9 +145,10 @@ EXPORT_SYMBOL_GPL(klist_del);
 
 void klist_remove(struct klist_node * n)
 {
-       spin_lock(&n->n_klist->k_lock);
+       struct klist * k = n->n_klist;
+       spin_lock(&k->k_lock);
        klist_dec_and_del(n);
-       spin_unlock(&n->n_klist->k_lock);
+       spin_unlock(&k->k_lock);
        wait_for_completion(&n->n_removed);
 }