Re: [PATCH v3 1/4] lib/dlock-list: Distributed and lock-protected lists

From: Al Viro
Date: Tue Jul 19 2016 - 01:01:11 EST


On Fri, Jul 15, 2016 at 01:39:40PM -0400, Waiman Long wrote:

> +struct dlock_list_head_percpu {
> + struct list_head list;
> + spinlock_t lock;
> +};

> +#define DLOCK_LIST_HEAD_PERCPU_INIT(name) \
> + { \
> + .list.prev = &name.list, \
> + .list.next = &name.list, \
> + .list.lock = __SPIN_LOCK_UNLOCKED(name), \

What's .list.lock and how does that even compile?

> +extern bool dlock_list_next(struct dlock_list_head *dlist,
> + struct dlock_list_iter *iter);

Ugh... Why not dlist_for_each_entry(), seeing that all users end up with
the same boilerplate?