The loop handling input and output of connections of xenstored is
open coding list_for_each_entry_safe() in an incredibly complicated
way.
Use list_for_each_entry_safe() instead, making it much more clear how
the code is working.
Signed-off-by: Juergen Gross <jgross@suse.com>
---
tools/xenstore/xenstored_core.c | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/tools/xenstore/xenstored_core.c b/tools/xenstore/xenstored_core.c
index 6e4022e5da..fa733e714e 100644
--- a/tools/xenstore/xenstored_core.c
+++ b/tools/xenstore/xenstored_core.c
@@ -2368,16 +2368,8 @@ int main(int argc, char *argv[])
}
}
- next = list_entry(connections.next, typeof(*conn), list);
- if (&next->list != &connections)
- talloc_increase_ref_count(next);
- while (&next->list != &connections) {
- conn = next;
-
- next = list_entry(conn->list.next,
- typeof(*conn), list);
- if (&next->list != &connections)
- talloc_increase_ref_count(next);
+ list_for_each_entry_safe(conn, next, &connections, list) {
+ talloc_increase_ref_count(conn);
if (conn_can_read(conn))
handle_input(conn);
--
2.35.3