* Oleg Nesterov [off-list ref] wrote:
Now we have a false positive if some time we queue B into that
workqueue, and this is not good.
We can avoid this problem if we put lockdep_map into work_struct, so
that wait_on_work() "locks" work->lockdep_map, while flush_workqueue()
takes wq->lockdep_map.
But probably we don't need this right now, at least until we really
have a lot of false positives while converting from flush_workqueue()
to cancel_work_sync/cancel_delayed_work_sync.
would be nice to map the real dependencies. Adding another lockdep_map
is really low-cost and the lack of false positives is reassuring.
Ingo