On Fri, Aug 02, 2019 at 01:37:58PM -0700, Ethan Hansen wrote: > The function hlist_bl_del_init_rcu is declared in rculist_bl.h, > but never used. Remove hlist_bl_del_init_rcu to clean code. > > Signed-off-by: Ethan Hansen <1ethanhansen@xxxxxxxxx> Queued, thank you! Thanx, Paul > --- > include/linux/rculist_bl.h | 28 ---------------------------- > 1 file changed, 28 deletions(-) > > diff --git a/include/linux/rculist_bl.h b/include/linux/rculist_bl.h > index 66e73ec..0b952d0 100644 > --- a/include/linux/rculist_bl.h > +++ b/include/linux/rculist_bl.h > @@ -25,34 +25,6 @@ static inline struct hlist_bl_node *hlist_bl_first_rcu(struct hlist_bl_head *h) > } > > /** > - * hlist_bl_del_init_rcu - deletes entry from hash list with re-initialization > - * @n: the element to delete from the hash list. > - * > - * Note: hlist_bl_unhashed() on the node returns true after this. It is > - * useful for RCU based read lockfree traversal if the writer side > - * must know if the list entry is still hashed or already unhashed. > - * > - * In particular, it means that we can not poison the forward pointers > - * that may still be used for walking the hash list and we can only > - * zero the pprev pointer so list_unhashed() will return true after > - * this. > - * > - * The caller must take whatever precautions are necessary (such as > - * holding appropriate locks) to avoid racing with another > - * list-mutation primitive, such as hlist_bl_add_head_rcu() or > - * hlist_bl_del_rcu(), running on this same list. However, it is > - * perfectly legal to run concurrently with the _rcu list-traversal > - * primitives, such as hlist_bl_for_each_entry_rcu(). > - */ > -static inline void hlist_bl_del_init_rcu(struct hlist_bl_node *n) > -{ > - if (!hlist_bl_unhashed(n)) { > - __hlist_bl_del(n); > - n->pprev = NULL; > - } > -} > - > -/** > * hlist_bl_del_rcu - deletes entry from hash list without re-initialization > * @n: the element to delete from the hash list. > * > -- > 1.8.3.1 >