diff options
author | Christoph Hellwig <hch@infradead.org> | 2013-11-14 17:32:11 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-14 19:32:22 -0500 |
commit | b89241e8cdb8321c20546d47645a9b65b58113b5 (patch) | |
tree | de330bd740b3f7e24f834df48b3db47dc1c75889 /lib | |
parent | ca5ecd64c2cdbcd316d789467147e732746f39fa (diff) |
llists: move llist_reverse_order from raid5 to llist.c
Make this useful helper available for other users.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jan Kara <jack@suse.cz>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/llist.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/llist.c b/lib/llist.c index 4a70d120138c..ef48b87247ec 100644 --- a/lib/llist.c +++ b/lib/llist.c | |||
@@ -81,3 +81,25 @@ struct llist_node *llist_del_first(struct llist_head *head) | |||
81 | return entry; | 81 | return entry; |
82 | } | 82 | } |
83 | EXPORT_SYMBOL_GPL(llist_del_first); | 83 | EXPORT_SYMBOL_GPL(llist_del_first); |
84 | |||
85 | /** | ||
86 | * llist_reverse_order - reverse order of a llist chain | ||
87 | * @head: first item of the list to be reversed | ||
88 | * | ||
89 | * Reverse the oder of a chain of llist entries and return the | ||
90 | * new first entry. | ||
91 | */ | ||
92 | struct llist_node *llist_reverse_order(struct llist_node *head) | ||
93 | { | ||
94 | struct llist_node *new_head = NULL; | ||
95 | |||
96 | while (head) { | ||
97 | struct llist_node *tmp = head; | ||
98 | head = head->next; | ||
99 | tmp->next = new_head; | ||
100 | new_head = tmp; | ||
101 | } | ||
102 | |||
103 | return new_head; | ||
104 | } | ||
105 | EXPORT_SYMBOL_GPL(llist_reverse_order); | ||