Linux 7.2.13 и 6.18.59 исправляют ошибки работы с файлами

Linux 7.2.13 и 6.18.59 исправляют ошибки работы с файлами
Содержание статьи

26 октября опубликованы Linux 7.2.13 и 6.18.59, корректирующие выпуски стабильной и долгосрочно поддерживаемой веток ядра. Среди изменений есть исправления конкурентного доступа к файлам. На Mentoring.digital разбираем, почему такие обновления важны для серверов с сетевыми файловыми ресурсами и что проверить перед установкой.

Что исправили в клиенте SMB

В обоих выпусках исправлена последовательность действий при открытии файла с флагом O_TRUNC, который обнуляет его содержимое. Прежде клиент SMB сбрасывал данные из страничного кэша, но не дожидался всех выполняющихся прямых и асинхронных операций ввода-вывода.

Из-за этого ранее начатая запись могла завершиться уже после обнуления файла. Тогда за новой границей файла снова появлялись старые данные. Исправление добавляет ожидание незавершённых операций перед изменением размера. Это устранение конкретной гонки, а не заявление о повреждении любого файла на SMB-ресурсе.

Какие изменения затронули NTFS

В журнале Linux 7.2.13 также перечислены исправления драйвера NTFS. Одно из них меняет порядок перемещения данных при уменьшении записи атрибута: прежняя последовательность могла нарушить описание расположения данных при повторном включении сжатия пустого файла.

Другое добавляет блокировку при изменении размера. Она не позволяет параллельной обработке страничного прерывания увидеть промежуточное состояние и ошибочно завершиться сигналом SIGBUS. Наличие этих исправлений в выпуске не означает, что каждый пользователь NTFS уже сталкивался с такой ошибкой.

Как проверить обновление своей системы

Сначала определите ветку и сборку установленного ядра, затем прочитайте сведения об обновлении у поставщика вашего дистрибутива. Номер upstream-релиза сам по себе не показывает, какие исправления уже включены в пакет дистрибутива. Переходить на другую ветку только ради совпадения номера не требуется.

Для системы с SMB полезно проверить чтение, запись и обнуление тестового файла на отдельном ресурсе. Для NTFS стоит воспроизвести используемые операции изменения размера и сжатия на копии данных. До перезагрузки сохраните возможность вернуться к рабочему ядру. Подготовить такой план и разобрать журналы можно с наставником по сопровождению инфраструктуры.

Похожие статьи по данной теме