Проблемы с BCache в ядре Linux 4.14 могут привести к повреждению данных

Пользователи дистрибутива Gentoo обратили внимание на регрессивное изменение в ядре Linux 4.14, которое может привести к повреждению содержимого файловой системы при использовании механизма BCache для кэширования доступа к медленным жестким дискам на быстрых SSD-накопителях. Исправление уже предложено для ядра Linux и будет включено в выпуск 4.14.2.

Суть проблемы в том, что в ядре 4.14 в системе блочного ввода/вывода (bio) для указания информации о разделах было представлено новое поле bi_partno, вместо того чтобы использовать уже применяемый метод кодирования сведений в поле bi_bdev в структуре bdev-bd_contains. Функция __bio_clone_fast была адаптирована для копирования информации о диске, но некорректно обрабатывала информацию о разделах на нём, что могло привести к повреждению содержимого при использовании BCache.

В зависимости от настроек проблема проявляется выдачей некорректных данных при чтении из раздела BСache, но также отмечаются и случаи невосстановимых повреждений базового раздела после его монтирования в составе BCache. Не исключено, что проблема может проявляться и для других блочных подсистем ядра, использующих вызов __bio_clone_fast.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.