Проблемы с 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.
© OpenNet