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

NAME

       hlist_add_head_rcu - adds the specified element to the specified hlist,

SYNOPSIS

       void hlist_add_head_rcu  (struct hlist_node * n,
                                  struct hlist_head * h);

ARGUMENTS

       n      the element to add to the hash list.

       h      the list to add to.

DESCRIPTION

       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_rcu, used
       to prevent memory-consistency problems on Alpha CPUs. Regardless of the
       type   of   CPU,  the  list-traversal  primitive  must  be  guarded  by
       rcu_read_lock.

DESCRIPTION

       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_rcu,  used
       to prevent memory-consistency problems on Alpha CPUs. Regardless of the
       type  of  CPU,  the  list-traversal  primitive  must  be   guarded   by
       rcu_read_lock.