Подробности
[В начало]
Проблема в реализации № F0004
Краткое описание
ext4: взаимная блокировка после нехватки памяти в ext4_init_io_end()
Подробное описание
Если ext4_init_io_end() завершается ошибкой ввиду нехватки памяти, mpage_da_submit_io() просто аозвращает -ENOMEM и оставляет заблокированными все страницы из extent. Это приводит к взаимной блокировке, т.к. ожидается, что mpage_da_submit_io() разблокирует все страницы перед своим завершением. Если ext4_init_io_end() завершается ошибкой ввиду нехватки памяти, ext4_writepage() вызывает redirty_page_for_writepage(), но оставляет страницу заблокированной. Это приводит к взаимной блокировке, т.к. ожидается, что страница находится в незаблокированном состоянии после writepage().
Компонент
linux-kernel 3.9
Принято
https://lkml.org/lkml/2013/5/13/426
commit
Статус
Исправлено в kernel 3.10-rc3
[В начало]