- use common iteration style pattern when looking up an
object
Introduced by f2ed1502191a37abb39e3e2c80cca07f0f3bb411
("batman-adv: Send multicast packets to nodes with a WANT_ALL flag")
Cc: Linux Lüssing <[email protected]>
Signed-off-by: Antonio Quartulli <[email protected]>
---
multicast.c | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/multicast.c b/multicast.c
index dfe4cd6..8c7ca81 100644
--- a/multicast.c
+++ b/multicast.c
@@ -409,20 +409,20 @@ batadv_mcast_forw_tt_node_get(struct batadv_priv
*bat_priv,
static struct batadv_orig_node *
batadv_mcast_forw_ipv4_node_get(struct batadv_priv *bat_priv)
{
- struct batadv_orig_node *orig_node;
+ struct batadv_orig_node *tmp_orig_node, *orig_node = NULL;
rcu_read_lock();
- hlist_for_each_entry_rcu(orig_node,
+ hlist_for_each_entry_rcu(tmp_orig_node,
&bat_priv->mcast.want_all_ipv4_list,
mcast_want_all_ipv4_node) {
- if (atomic_inc_not_zero(&orig_node->refcount))
- goto unlock;
- }
-
- orig_node = NULL;
+ if (!atomic_inc_not_zero(&orig_node->refcount))
+ continue;
-unlock:
+ orig_node = tmp_orig_node;
+ break;
+ }
rcu_read_unlock();
+
return orig_node;
}
@@ -436,20 +436,20 @@ unlock:
static struct batadv_orig_node *
batadv_mcast_forw_ipv6_node_get(struct batadv_priv *bat_priv)
{
- struct batadv_orig_node *orig_node;
+ struct batadv_orig_node *tmp_orig_node, *orig_node = NULL;
rcu_read_lock();
- hlist_for_each_entry_rcu(orig_node,
+ hlist_for_each_entry_rcu(tmp_orig_node,
&bat_priv->mcast.want_all_ipv6_list,
mcast_want_all_ipv6_node) {
- if (atomic_inc_not_zero(&orig_node->refcount))
- goto unlock;
- }
-
- orig_node = NULL;
+ if (!atomic_inc_not_zero(&orig_node->refcount))
+ continue;
-unlock:
+ orig_node = tmp_orig_node;
+ break;
+ }
rcu_read_unlock();
+
return orig_node;
}
--
1.8.3.2