Skip to content

Commit

Permalink
list: change list_for_each_entry*() to use list_*_entry()
Browse files Browse the repository at this point in the history
Now that we have list_{next,prev}_entry() we can change
list_for_each_entry*() and list_safe_reset_next() to use the new helpers
to improve the readability.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Cc: Eilon Greenstein <eilong@broadcom.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Oleg Nesterov authored and Linus Torvalds committed Nov 13, 2013
1 parent 008208c commit 8120e2e
Showing 1 changed file with 22 additions and 22 deletions.
44 changes: 22 additions & 22 deletions include/linux/list.h
Original file line number Diff line number Diff line change
Expand Up @@ -433,8 +433,8 @@ static inline void list_splice_tail_init(struct list_head *list,
*/
#define list_for_each_entry(pos, head, member) \
for (pos = list_entry((head)->next, typeof(*pos), member); \
&pos->member != (head); \
pos = list_entry(pos->member.next, typeof(*pos), member))
&pos->member != (head); \
pos = list_next_entry(pos, member))

/**
* list_for_each_entry_reverse - iterate backwards over list of given type.
Expand All @@ -444,8 +444,8 @@ static inline void list_splice_tail_init(struct list_head *list,
*/
#define list_for_each_entry_reverse(pos, head, member) \
for (pos = list_entry((head)->prev, typeof(*pos), member); \
&pos->member != (head); \
pos = list_entry(pos->member.prev, typeof(*pos), member))
&pos->member != (head); \
pos = list_prev_entry(pos, member))

/**
* list_prepare_entry - prepare a pos entry for use in list_for_each_entry_continue()
Expand All @@ -468,9 +468,9 @@ static inline void list_splice_tail_init(struct list_head *list,
* the current position.
*/
#define list_for_each_entry_continue(pos, head, member) \
for (pos = list_entry(pos->member.next, typeof(*pos), member); \
&pos->member != (head); \
pos = list_entry(pos->member.next, typeof(*pos), member))
for (pos = list_next_entry(pos, member); \
&pos->member != (head); \
pos = list_next_entry(pos, member))

/**
* list_for_each_entry_continue_reverse - iterate backwards from the given point
Expand All @@ -482,9 +482,9 @@ static inline void list_splice_tail_init(struct list_head *list,
* the current position.
*/
#define list_for_each_entry_continue_reverse(pos, head, member) \
for (pos = list_entry(pos->member.prev, typeof(*pos), member); \
&pos->member != (head); \
pos = list_entry(pos->member.prev, typeof(*pos), member))
for (pos = list_prev_entry(pos, member); \
&pos->member != (head); \
pos = list_prev_entry(pos, member))

/**
* list_for_each_entry_from - iterate over list of given type from the current point
Expand All @@ -495,8 +495,8 @@ static inline void list_splice_tail_init(struct list_head *list,
* Iterate over list of given type, continuing from current position.
*/
#define list_for_each_entry_from(pos, head, member) \
for (; &pos->member != (head); \
pos = list_entry(pos->member.next, typeof(*pos), member))
for (; &pos->member != (head); \
pos = list_next_entry(pos, member))

/**
* list_for_each_entry_safe - iterate over list of given type safe against removal of list entry
Expand All @@ -507,9 +507,9 @@ static inline void list_splice_tail_init(struct list_head *list,
*/
#define list_for_each_entry_safe(pos, n, head, member) \
for (pos = list_entry((head)->next, typeof(*pos), member), \
n = list_entry(pos->member.next, typeof(*pos), member); \
n = list_next_entry(pos, member); \
&pos->member != (head); \
pos = n, n = list_entry(n->member.next, typeof(*n), member))
pos = n, n = list_next_entry(n, member))

/**
* list_for_each_entry_safe_continue - continue list iteration safe against removal
Expand All @@ -522,10 +522,10 @@ static inline void list_splice_tail_init(struct list_head *list,
* safe against removal of list entry.
*/
#define list_for_each_entry_safe_continue(pos, n, head, member) \
for (pos = list_entry(pos->member.next, typeof(*pos), member), \
n = list_entry(pos->member.next, typeof(*pos), member); \
for (pos = list_next_entry(pos, member), \
n = list_next_entry(pos, member); \
&pos->member != (head); \
pos = n, n = list_entry(n->member.next, typeof(*n), member))
pos = n, n = list_next_entry(n, member))

/**
* list_for_each_entry_safe_from - iterate over list from current point safe against removal
Expand All @@ -538,9 +538,9 @@ static inline void list_splice_tail_init(struct list_head *list,
* removal of list entry.
*/
#define list_for_each_entry_safe_from(pos, n, head, member) \
for (n = list_entry(pos->member.next, typeof(*pos), member); \
for (n = list_next_entry(pos, member); \
&pos->member != (head); \
pos = n, n = list_entry(n->member.next, typeof(*n), member))
pos = n, n = list_next_entry(n, member))

/**
* list_for_each_entry_safe_reverse - iterate backwards over list safe against removal
Expand All @@ -554,9 +554,9 @@ static inline void list_splice_tail_init(struct list_head *list,
*/
#define list_for_each_entry_safe_reverse(pos, n, head, member) \
for (pos = list_entry((head)->prev, typeof(*pos), member), \
n = list_entry(pos->member.prev, typeof(*pos), member); \
n = list_prev_entry(pos, member); \
&pos->member != (head); \
pos = n, n = list_entry(n->member.prev, typeof(*n), member))
pos = n, n = list_prev_entry(n, member))

/**
* list_safe_reset_next - reset a stale list_for_each_entry_safe loop
Expand All @@ -571,7 +571,7 @@ static inline void list_splice_tail_init(struct list_head *list,
* completing the current iteration of the loop body.
*/
#define list_safe_reset_next(pos, n, member) \
n = list_entry(pos->member.next, typeof(*pos), member)
n = list_next_entry(pos, member)

/*
* Double linked lists with a single pointer list head.
Expand Down

0 comments on commit 8120e2e

Please sign in to comment.