Ошибка в файловой системе EXT4 может привести к потере данных

Ошибка в файловой системе EXT4 может привести к потере данных

Эксперты предоставили исправление ошибки для версий Linux 4.x.

Файловая система EXT4 может привести к потере данных в ядре Linux 4.0 и более поздних версиях. Об этом сообщается в отчете на сайте проекта Debbugs.

Устраняющие ошибку исправления уже выпущены. Специалист Лукаш Чернер (Lukaš Czerner) считает, что проблема также присутствует в ядре Linux более ранних версий – начиная с версии 3.12. Другие эксперты полагают, что ошибка проявляется только в ядре Linux 4.0 и выше.

По словам Чернера, проблема состоит в том, что когда вставляется отложенный экстент в дерево состояния экстентов, единственный способ избавиться от него впоследствии – создать задержанный буфер. Однако существует ограничение в реализации дерева состояния экстентов, поэтому если при вставке незаписанного экстента присутствует хотя бы один задержанный блок – весь незаписанный экстент будет помечен, как задержанный.

Если после этого осуществляется запись кода в незаписанный экстент, этот экстент в любом случае остается задержанным, а при попытке дописать код в вышеуказанный блок функция ext4_da_map_blocks() создает новый отложенный буфер и присоединяет его к некорректному блоку, что приводит к обнулению всего содержимого буфера и потере ранее сохраненных данных.

Специалисты предоставили исправление ошибки для версий ядра Linux 4.x.

Домашний Wi-Fi – ваша крепость или картонный домик?

Узнайте, как построить неприступную стену