NTFS3 no Linux 7.0: alocação tardia e fim dos travamentos em discos Windows

Velocidade e segurança: driver NTFS3 ganha alocação tardia no kernel linux 7.0!

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...
  • Alocação tardia: o driver NTFS3 agora suporta delayed allocation (delalloc), agrupando escritas na memória RAM antes de gravar no disco para reduzir drasticamente a fragmentação.
  • Modernização do código: operações críticas de arquivo foram migradas para as infraestruturas de iomap e folios, alinhando o driver aos padrões de alta performance do VFS do Linux.
  • Fim dos travamentos: a atualização elimina deadlocks e loops infinitos que ocorriam ao ler metadados corrompidos ou listas de atributos vazias, aumentando a estabilidade do sistema.
  • Arquivos esparsos: a nova implementação de SEEK_DATA e SEEK_HOLE permite detectar áreas vazias em arquivos grandes com precisão, acelerando backups e clonagem de discos.
  • Segurança de dados: o comando fsync foi ajustado para sincronizar também os diretórios pais (parent inodes), garantindo a integridade da estrutura de pastas em caso de queda de energia.

Linus Torvalds confirmou a integração de uma atualização crítica para o driver NTFS3 no Kernel Linux 7.0. O código, submetido pelo mantenedor Konstantin Komarov da Paragon Software, representa um marco na maturidade deste driver nativo. A grande novidade é a implementação da alocação tardia (delayed allocation ou delalloc), uma técnica avançada que muda fundamentalmente como o Linux gerencia a escrita de dados em partições do Windows, aproximando seu desempenho de sistemas modernos como Ext4 e XFS.

Além do novo mecanismo de alocação, o driver sofreu uma modernização estrutural profunda, migrando operações para a infraestrutura de iomap e corrigindo falhas graves de lógica que poderiam travar o sistema ao ler discos corrompidos.

O impacto real no uso diário:

  • Discos mais organizados: ao copiar grandes volumes de dados para um HD externo NTFS, o sistema agora evita escrever pequenos pedaços de arquivos espalhados pelo disco. A alocação tardia permite que o driver “planeje” a gravação, resultando em arquivos contíguos e muito menos fragmentação a longo prazo.
  • Segurança contra corrupção: a atualização blinda o driver contra metadados inconsistentes. Antes, tentar ler um disco NTFS levemente corrompido poderia colocar o kernel em um loop infinito, travando o computador. Agora, o driver detecta essas falhas e aborta a operação com segurança.

Detalhes técnicos da alocação tardia

A implementação do delalloc no NTFS3 introduz uma nova estrutura em memória chamada run_da (delayed allocation runlist). O funcionamento técnico ocorre em três etapas:

  1. Reserva virtual: quando um programa solicita a gravação de dados, o driver não aloca clusters no disco imediatamente. Em vez disso, ele marca a região na memória com uma flag especial (DELALLOC_LCN), reservando o espaço logicamente.
  2. Gerenciamento de conflitos: o novo código sabe lidar com situações complexas, como colisões com Direct I/O (gravação direta sem cache) e truncamento de arquivos via fallocate. Se houver risco de conflito, o driver força a alocação imediata para garantir a integridade.
  3. Gravação definitiva: a conversão dos clusters virtuais em espaço físico real ocorre apenas no momento do writeback (quando o kernel decide esvaziar o cache para o disco) ou quando o arquivo é fechado, permitindo agrupar escritas vizinhas em uma única operação sequencial.

Modernização da infraestrutura (iomap e folios)

O driver NTFS3 está abandonando códigos legados para se alinhar aos padrões modernos do VFS (Virtual File System) do Linux:

  • Adoção do iomap: operações críticas de arquivo foram portadas para usar iomap. Isso padroniza o comportamento do NTFS3 com outros sistemas de arquivos de alta performance, facilitando a manutenção futura e reduzindo a dívida técnica.
  • Uso de folios: o código agora utiliza “folios” (a nova abstração de memória do kernel que substitui as antigas “páginas” individuais). Isso é visível na nova função ntfs_read_folio(), que zera corretamente os buffers que excedem o tamanho válido do arquivo (i_valid), evitando vazamento de dados antigos da memória RAM para o arquivo.

Melhorias em arquivos esparsos e metadados

A atualização corrige deficiências antigas na manipulação de arquivos especiais:

  • Detecção de buracos: a implementação de SEEK_DATA e SEEK_HOLE agora escaneia as data runs reais do disco. Isso significa que ferramentas de backup e clonagem podem pular “buracos” (espaços vazios não alocados) em arquivos de máquinas virtuais ou bancos de dados com precisão, economizando tempo e espaço.
  • Limpeza de alocações: o driver agora descarta proativamente clusters pré-alocados para arquivos esparsos e comprimidos, liberando espaço em disco que, de outra forma, ficaria “preso” e inutilizável.

Correções de estabilidade e segurança

Uma lista extensa de bugs críticos foi resolvida neste ciclo:

  • Loops infinitos: foram corrigidos erros de lógica em indx_find (busca em índices), attr_load_runs_range e situações onde listas de atributos de tamanho zero (zero-sized ATTR_LIST) faziam o driver entrar em processamento eterno.
  • Deadlocks: resolvida uma dependência circular de bloqueio (locking dependency) na função run_unpack_ex e um travamento fatal em ni_read_folio_cmpr (leitura de arquivos comprimidos).
  • Leitura fora dos limites: corrigida uma vulnerabilidade de slab-out-of-bounds read na função DeleteIndexEntryRoot, que poderia ser explorada ou causar falhas de sistema ao manipular entradas de índice malformadas.
Compartilhe este artigo
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre GNU/Linux, Software Livre e Código Aberto, dedica-se a descomplicar o universo tecnológico para entusiastas e profissionais. Seu foco é em notícias, tutoriais e análises aprofundadas, promovendo o conhecimento e a liberdade digital no Brasil.