Provided by: linux-doc-2.6.15_2.6.15-23.39_all bug


       hlist_del_rcu - deletes entry from hash list without re-initialization


       void hlist_del_rcu  (struct hlist_node * n);


       n      the element to delete from the hash list.


        list_unhashed  on  entry does not return true after this, the entry is
       in an undefined state. It is useful for RCU based lockfree traversal.

       In particular, it means that we can not  poison  the  forward  pointers
       that may still be used for walking the hash list.

       The  caller  must  take  whatever  precautions  are  necessary (such as
       holding appropriate locks) to avoid racing with  another  list-mutation
       primitive, such as hlist_add_head_rcu or hlist_del_rcu, running on this
       same list. However, it is perfectly legal to run concurrently with  the
       _rcu list-traversal primitives, such as hlist_for_each_entry.