Re: [PATCH 1/2] epoll: use the waitqueue lock to protect ep->wq

From: Andreas Dilger
Date: Wed Dec 06 2017 - 21:39:02 EST


> On Dec 6, 2017, at 17:49, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
>
> This exposes some waitqueue internals, but AFAICS the FUSE code already does a
> similar trick with fiq->waitq.lock so there's precedent.

What about waitqueue_lock() and waitqueue_unlock() helpers that
lock and unlock, to avoid exposing the internals? Or would that add
confusion by making users think they need their own waitqueue locking?

Alternately, a helper that returns the pointer to the lock:

#define waitqueue_lockp(wq) &((wq)->lock)

Used like the following:
spin_lock_irqsave(waitqueue_lockp(&ep->wq), flags);

Cheers, Andreas