Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b89241e8 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Linus Torvalds
Browse files

llists: move llist_reverse_order from raid5 to llist.c



Make this useful helper available for other users.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Neil Brown <neilb@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent ca5ecd64
Loading
Loading
Loading
Loading
+0 −14
Original line number Diff line number Diff line
@@ -293,20 +293,6 @@ static void __release_stripe(struct r5conf *conf, struct stripe_head *sh)
		do_release_stripe(conf, sh);
}

static struct llist_node *llist_reverse_order(struct llist_node *head)
{
	struct llist_node *new_head = NULL;

	while (head) {
		struct llist_node *tmp = head;
		head = head->next;
		tmp->next = new_head;
		new_head = tmp;
	}

	return new_head;
}

/* should hold conf->device_lock already */
static int release_stripe_list(struct r5conf *conf)
{
+2 −0
Original line number Diff line number Diff line
@@ -195,4 +195,6 @@ static inline struct llist_node *llist_del_all(struct llist_head *head)

extern struct llist_node *llist_del_first(struct llist_head *head);

struct llist_node *llist_reverse_order(struct llist_node *head);

#endif /* LLIST_H */
+22 −0
Original line number Diff line number Diff line
@@ -81,3 +81,25 @@ struct llist_node *llist_del_first(struct llist_head *head)
	return entry;
}
EXPORT_SYMBOL_GPL(llist_del_first);

/**
 * llist_reverse_order - reverse order of a llist chain
 * @head:	first item of the list to be reversed
 *
 * Reverse the oder of a chain of llist entries and return the
 * new first entry.
 */
struct llist_node *llist_reverse_order(struct llist_node *head)
{
	struct llist_node *new_head = NULL;

	while (head) {
		struct llist_node *tmp = head;
		head = head->next;
		tmp->next = new_head;
		new_head = tmp;
	}

	return new_head;
}
EXPORT_SYMBOL_GPL(llist_reverse_order);