In the function xTaskPriorityDisinherit there is the following check:
/* Only disinherit if no other mutexes are held. */ if( pxTCB->uxMutexesHeld == ( UBaseType_t ) 0 )
Why does the task not disinherit priority when other mutexes are held? The other mutexes might have a lower priority than the current one, but still higher than uxBasePriority.