On Thu, Jun 23, 2016 at 08:12:16PM +0200, Oleg Nesterov wrote: > > And probably kill task_struct->blocked_on? I do not see the point of > this task->blocked_on != waiter check.
I think that came about because of PI and or deadlock detection. Of course, the current mutex code doesn't have anything like that these days, and rt_mutex has task_struct::pi_blocked_on.