Linus Torvalds integrou neste fim de semana um novo conjunto de correções críticas para o sistema de arquivos Btrfs no Kernel Linux 7.3-rc3. Os patches, enviados pelo mantenedor David Sterba, resolvem duas regressões que causavam impacto direto aos usuários: a quebra na derivação de chaves da VPN OpenConnect e falhas de inicialização em sistemas configurados sem initramfs.
Além dos problemas de maior visibilidade, o pacote de atualizações refina o comportamento do Btrfs em cenários de armazenamento em zonas (zoned storage), compressão de dados e integridade estrutural.
O que essas correções mudam na prática
Para a maioria dos usuários, as alterações garantem que o ciclo de testes do Linux 7.3 não introduza quebras em ferramentas de rede e processos de boot personalizados.
Especificamente, se você utiliza o OpenConnect para conexões VPN, uma falha recente no Btrfs fazia com que o identificador do sistema de arquivos mudasse indevidamente, invalidando chaves de segurança. O outro impacto prático envolve administradores de sistemas embarcados ou distribuições altamente customizadas que inicializam o sistema operacional diretamente no disco, sem passar por um disco de RAM inicial (initramfs). Uma falha impedia que o gerenciador de boot identificasse o disco real, travando a inicialização. Ambas as situações foram corrigidas.
Estabilidade do f_fsid e o problema com o OpenConnect

O problema de maior impacto estava relacionado ao f_fsid, o identificador do sistema de arquivos. Recentemente, o código do Btrfs havia sido alterado para aplicar um hash dinâmico ao ID com o objetivo de evitar colisões quando sistemas de arquivos clonados fossem montados simultaneamente usando o recurso temp_fsid.
No entanto, a mudança afetou o comportamento padrão. O OpenConnect utiliza o f_fsid estável como parte da sua rotina de derivação de chaves de segurança. A oscilação desse identificador no Btrfs quebrou essa funcionalidade, mesmo que o uso do ID para fins criptográficos não seja considerado a prática mais segura do ponto de vista técnico.
O patch integrado no Linux 7.3-rc3 corrige a lógica, garantindo que o hash dinâmico seja aplicado única e exclusivamente quando a funcionalidade temp_fsid estiver ativa, preservando a estabilidade e a retrocompatibilidade do identificador para o cenário padrão.
Correção para mapeamento do /dev/root
O segundo erro de regressão corrigido afetava o processo de boot de sistemas que operam sem um initramfs. Nesses ambientes, o kernel temporariamente nomeia o sistema de arquivos raiz como /dev/root.
Após a inicialização, quando o sistema escaneia os dispositivos reais, o Btrfs precisa atualizar esse caminho para o nome verdadeiro do dispositivo de bloco para que ferramentas como as sondas do GRUB2 funcionem corretamente. Uma restrição introduzida em atualizações anteriores impedia que o Btrfs renomeasse dispositivos caso o número principal e secundário (dev_t) fosse o mesmo.
O desenvolvedor adicionou uma exceção explícita no arquivo volumes.c. Agora, o Kernel Linux tem permissão para atualizar o nome do dispositivo especificamente quando o registro original for /dev/root, restabelecendo a compatibilidade com esse método de boot.
Refinamentos em compressão, zoned storage e fs-verity
Além das correções voltadas ao usuário final, o merge inclui ajustes internos no funcionamento do sistema de arquivos:
- Extensões inline e compressão: O Btrfs abortará a criação de uma extensão inline comprimida se o tamanho do arquivo resultante for maior ou igual ao tamanho descompactado. A correção economiza processamento e espaço, evitando o armazenamento de metadados inúteis quando algoritmos (como LZO) não conseguem reduzir o tamanho original de arquivos muito pequenos.
- Armazenamento em Zonas (Zoned Mode): O suporte a zoned storage foi corrigido para lidar adequadamente com a ativação de zonas em todos os perfis de grupos de blocos RAID suportados (RAID0, RAID1, RAID1C3, RAID1C4 e RAID10).
- Limpeza do fs-verity: Quando o sistema de arquivos estiver completamente cheio (ENOSPC), o Btrfs agora utilizará a reserva de espaço global para conseguir remover itens do fs-verity, impedindo que falhas de habilitação fiquem travadas permanentemente por falta de cotas de disco.
- Prevenção de corrupção: Transações serão imediatamente abortadas caso ocorra uma falha ao atualizar o inode durante operações de “hole punching” (liberação de blocos vazios dentro de um arquivo) ou na criação de cópias via reflink, garantindo a consistência dos dados no disco.
A atualização já está disponível na árvore principal e fará parte do lançamento estável do Kernel Linux 7.3, previsto para as próximas semanas.