Unfortunately f_op->poll() does not let the caller to specify the events
it's interested in, that would allow to split send/recevie wait queues and
better detect read/write cases.
The detection of a waitqueue_active(->sk_wr_sleep) would work fine in
detecting is someone is actually waiting for a write, w/out the false
positives triggered by the read-waiters.
That would be a very sane thing to do, but would require a big&dumb change
to all the ->poll around (that could be automated by a script - devices
not caring about the events hint can just continue to use the single queue
like they currently do), and a more critical and gradual change of all the
devices that wants to take advantage of it.
That way, no more magic bits are needed, and a simple waitqueue_active()
would tell you if someone is waiting for write-space events.
- Davide
-