| Date | Mon, 24 Jun 2019 08:51:37 -0700 | From | Matthew Wilcox <> | Subject | Re: [PATCH 01/12] list.h: add a list_pop helper |
| |
On Mon, Jun 24, 2019 at 07:52:42AM +0200, Christoph Hellwig wrote: > +/** > + * list_pop - delete the first entry from a list and return it > + * @list: the list to take the element from. > + * @type: the type of the struct this is embedded in. > + * @member: the name of the list_head within the struct. > + * > + * Note that if the list is empty, it returns NULL. > + */ > +#define list_pop(list, type, member) \
The usual convention in list.h is that list_foo uses the list head and list_foo_entry uses the container type. So I think this should be renamed to list_pop_entry() at least. Do we also want:
static inline struct list_head *list_pop(struct list_head *head) { struct list_head *first = READ_ONCE(head->next);
if (first == head) return NULL; __list_del(head, first->next); return first; }
we also seem to prefer using inline functions over #defines in this header file.
|