diff options
author | Frederic Weisbecker <fweisbec@gmail.com> | 2010-01-09 20:53:14 +0100 |
---|---|---|
committer | Frederic Weisbecker <fweisbec@gmail.com> | 2010-01-16 12:29:32 +0100 |
commit | 5908cdc85eb30f8d07f2cb11d4a62334d7229048 (patch) | |
tree | 6d63ec247a47b957bea52578e77c8d6bda942eb0 | |
parent | 889ff0150661512d79484219612b7e2e024b6c07 (diff) | |
download | blackbird-op-linux-5908cdc85eb30f8d07f2cb11d4a62334d7229048.tar.gz blackbird-op-linux-5908cdc85eb30f8d07f2cb11d4a62334d7229048.zip |
list: Introduce list_rotate_left()
Bring a new list_rotate_left() helper that rotates a list to
the left. This is useful for codes that need to round roubin
elements which queue priority increases from tail to head.
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Arnaldo Carvalho de Melo <acme@infradead.org>
-rw-r--r-- | include/linux/list.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/linux/list.h b/include/linux/list.h index 969f6e92d089..5d9c6558e8ab 100644 --- a/include/linux/list.h +++ b/include/linux/list.h @@ -206,6 +206,20 @@ static inline int list_empty_careful(const struct list_head *head) } /** + * list_rotate_left - rotate the list to the left + * @head: the head of the list + */ +static inline void list_rotate_left(struct list_head *head) +{ + struct list_head *first; + + if (!list_empty(head)) { + first = head->next; + list_move_tail(first, head); + } +} + +/** * list_is_singular - tests whether a list has just one entry. * @head: the list to test. */ |