Подробности
[В начало]
Проблема в реализации № L0195
Краткое описание
target: Двойная блокировка в iscsit_get_tpg()
Подробное описание
Двойная блокировка может произойти из-за следующего кода в iscsit_get_tpg().
drivers/target/iscsi/iscsi_target_tpg.c: int iscsit_get_tpg( struct iscsi_portal_group *tpg) { int ret; ret = mutex_lock_interruptible(&tpg->tpg_access_lock); return ((ret != 0) || signal_pending(current)) ? -1 : 0; }Если mutex_lock_interruptible() успешно захватывает мьютекс, но оказывается pending signal, то функция возвращает ошибку, но оставляет мьютекс захваченным. Вызывающие iscsit_get_tpg() к такому не готовы, в результате чего может случиться взаимная блокировка.
Компонент
linux-kernel 3.19
Принято
https://lkml.org/lkml/2015/5/19/964
commit
Статус
Исправлено в ядре 4.1
[В начало]
»