On Fri, Oct 04, 2013 at 01:15:13PM +0200, Oleg Nesterov wrote: > Of course we can fix this, but wait_for_completion/complete already > does the necessary work: x->done acts as a resource counter which is > always checked/incremented/decremented under the same lock.
Urgh, so now you're not using a semaphore as completion but using a completion as semaphore.