В ядре Linux устранена следующая уязвимость:
btrfs: Zoned: исправлена тупиковая ситуация при ожидании билета во время перемещения данных. При перемещении данных в зонированной файловой системе BTRFS может блокироваться.
в handle_reserve_tickets(). Процесс перемещения ожидает в пространстве
билет резервации, который никогда не может быть выполнен, потому что переезд
сама по себе является операцией, ответственной за освобождение этого пространства.
Исправьте это, введя новое состояние сброса,
BTRFS_RESERVE_FLUSH_ZONED_RELOCATION, специально для фрагмента данных
распределение при зональном переселении. Нравится
BTRFS_RESERVE_FLUSH_FREE_SPACE_INODE, это состояние использует
Priority_reclaim_data_space() вместо обычного пути очистки, который
позволяет избежать повторного ввода кода перемещения и разрыва цикла взаимоблокировки. В btrfs_alloc_data_chunk_ondemand() выберите это новое состояние очистки, когда
inode принадлежит корню перемещения данных в зонированной файловой системе.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: btrfs: zoned: fix deadlock waiting for ticket during data relocation When performing data relocation on a zoned filesystem, BTRFS can deadlock in handle_reserve_tickets(). The relocation process is waiting on a space reservation ticket that can never be fulfilled, because the relocation itself is the operation responsible for freeing up that space. Fix this by introducing a new flush state, BTRFS_RESERVE_FLUSH_ZONED_RELOCATION, specifically for data chunk allocation during zoned relocation. Like BTRFS_RESERVE_FLUSH_FREE_SPACE_INODE, this state uses priority_reclaim_data_space() instead of the normal flushing path, which avoids re-entering the relocation code and breaking the deadlock cycle. In btrfs_alloc_data_chunk_ondemand(), select this new flush state when the inode belongs to a data relocation root on a zoned filesystem.