FERRAMENTAS LINUX: Linux 7.3: O que há de novo no Device Mapper ? Todas as correções e limpezas de código

quarta-feira, 26 de agosto de 2026

Linux 7.3: O que há de novo no Device Mapper ? Todas as correções e limpezas de código

 


O Linux 7.3 Device Mapper: correções de bugs, limpezas com IA Claude Opus 4.6, validação de metadados e mais segurança. Veja o que mudou e como atualizar. 


O Device Mapper é um dos componentes mais fundamentais do kernel Linux. Ele permite mapear dispositivos de bloco físicos em dispositivos virtuais de nível superior — é a base de tecnologias como LVM (Logical Volume Manager), dm-crypt (criptografia de disco), RAID via software e contêineres. 

Toda vez que você cria um volume lógico, um snapshot ou um disco criptografado no Linux, está usando o Device Mapper.

Com a chegada do Linux 7.3, o subsistema Device Mapper não recebeu grandes novidades, mas foi alvo de dezenas de correções de bugs e limpezas de código que aumentam significativamente a estabilidade, a segurança e a confiabilidade do sistema.

O grande destaque desta atualização é a participação da Inteligência Artificial no processo de desenvolvimento: nada menos que seis correções menores de código foram identificadas pelo modelo Claude Opus 4.6, da Anthropic. Isso mostra como IAs generativas já estão contribuindo ativamente para a manutenção de um dos kernels mais complexos do mundo.

Neste artigo, você vai entender o que mudou, por que isso importa para o seu dia a dia com Linux e como se preparar para essas atualizações.


Limpezas de código identificadas por IA: Claude Opus 4.6 em ação


Uma das notícias mais interessantes do Linux 7.3 é o uso do Claude Opus 4.6 para encontrar problemas de código que passaram despercebidos por revisores humanos.

O modelo de linguagem da Anthropic analisou o código-fonte do Device Mapper e apontou seis pequenas correções em diferentes partes do subsistema. 

Embora sejam mudanças pontuais — como ajustes de estilo, remoção de código morto e correções de vazamento de memória —, elas demonstram o potencial da IA para auxiliar na revisão de código em larga escala.


Onde as correções foram aplicadas ?


As limpezas identificadas pelo Claude Opus 4.6 foram distribuídas entre os seguintes componentes:

  • dm core — o núcleo do Device Mapper, responsável pelo gerenciamento básico de dispositivos;

  • dm-cache — mecanismo de cache em blocos para acelerar acesso a discos lentos;

  • dm-switch — usado para roteamento de I/O em ambientes com múltiplos caminhos;

  • dm-inlinecrypt — suporte a criptografia inline para dispositivos de bloco;

  • dm-vdo — Virtual Data Optimizer, tecnologia de deduplicação e compressão.

Além dessas correções automáticas, os desenvolvedores também aplicaram limpezas manuais adicionais a esses mesmos alvos, garantindo um código mais limpo, legível e menos propenso a erros.

Produto Recomendado


O Livro  C++ Para Leigos Passo a Passo, de Paul Snaith, é um clássico manual introdutório voltado para quem deseja dar os primeiros passos na linguagem de programação C++.

Publicado originalmente em 1999 pela editora Ciência Moderna, a obra se destaca pela linguagem acessível e didática, guiando o leitor do zero até a familiarização com os conceitos e comandos essenciais da linguagem.

Com cerca de 370 a 380 páginas, o livro aborda desde os fundamentos da programação até tópicos mais práticos para que o leitor possa começar a criar seus próprios programas. 

É uma opção para quem busca um aprendizado estruturado e progressivo, ideal para iniciantes absolutos que querem construir uma base sólida em C++.

Observação: Este livro é uma edição mais antiga (de 1999). Para quem busca conteúdo atualizado com os padrões mais recentes da linguagem (como C++14 ou C++17), a recomendação é a série “C++ Para Leigos” de Stephen R. Davis, que possui edições mais novas e revisadas.

C++ Para Leigos Passo a Passo -> https://link.amazon/B0fx5TGap

Eu ganho uma comissão quando você faz uma compra.


Validação de metadados: mais segurança para dm-pcache e dm-array

Dois dos alvos mais críticos do Device Mapper receberam melhorias significativas na validação de metadados:


dm-pcache (Persistent Cache)


O dm-pcache é um alvo que permite usar memória persistente (como NVDIMMs) como cache de blocos, com garantia de persistência. No Linux 7.3, a validação dos metadados foi aprimorada para detectar corrupção ou versões incompatíveis antes que o sistema tente usá-los.

Isso reduz drasticamente o risco de falhas silenciosas e perda de dados em ambientes que dependem de cache persistente, como servidores de banco de dados e sistemas de virtualização.


dm-array


O dm-array é uma estrutura de dados usada internamente por vários alvos do Device Mapper (como dm-cache e dm-thin) para gerenciar arrays de blocos de forma transacional.

A correção mais relevante aqui foi a validação do campo nr_entries (número de entradas) ao ler cabeçalhos de blocos. Antes, esse valor era usado sem verificação, o que permitia que metadados maliciosos ou corrompidos causassem leituras fora dos limites do buffer — um problema clássico de segurança.

Com a correção, o dm-array agora rejeita blocos cujo nr_entries não caiba no bloco ou exceda o máximo permitido. Isso elimina uma vulnerabilidade que poderia ser explorada por atacantes com acesso ao dispositivo de metadados.


Correções de concorrência: ioctl e table load

Dois bugs relacionados a condições de corrida (race conditions) foram corrigidos:


1. Race condition entre resume e remove via ioctl


O comando dmsetup e outras ferramentas usam ioctls para controlar dispositivos Device Mapper. No Linux 7.3, foi corrigida uma condição de corrida entre as operações resume e remove.

Em cenários de alta concorrência, era possível que um dispositivo fosse removido enquanto ainda estava sendo retomado, causando comportamento indefinido e possíveis panics no kernel. A correção sincroniza adequadamente essas operações.


2. Race condition em carregamento de tabelas (table load)


Outro problema corrigido envolvia o carregamento concorrente de tabelas via ioctl. Quando múltiplos processos tentavam carregar tabelas simultaneamente, o sistema podia entrar em estado inconsistente.


dm-raid1 e dm-io: suporte a vetores de bio não alinhados


O dm-raid1 (espelhamento) e o dm-io (camada de I/O do Device Mapper) agora funcionam corretamente com vetores de bio não alinhados.

Bios (Block I/O Operations) podem ter múltiplos vetores (segmentos de memória) que nem sempre estão alinhados com os limites de página ou setor. Antes, isso podia causar erros de I/O ou falhas em operações de leitura/escrita em configurações específicas — como RAID1 sobre dm-integrity sobre ramdisk.

A correção ajusta o tamanho máximo de requisição e rejeita bios com múltiplos vetores que ultrapassem os limites permitidos.


dm-integrity: marcadores keyed para discard


O dm-integrity fornece integridade de dados em nível de bloco usando HMAC (Hash-based Message Authentication Code). No Linux 7.3, uma vulnerabilidade de segurança foi corrigida.


O problema


Quando um bloco era descartado (discard/TRIM), o dm-integrity preenchia a tag de integridade com um valor constante (0xf6 - DISCARD_FILLER). O código então pulava a verificação HMAC ao encontrar essa tag, assumindo que o bloco havia sido realmente descartado.

O problema ? Um atacante com o acesso de escrita ao dispositivo subjacente (mas sem a chave de integridade) podia forjar essa tag em qualquer bloco, fazendo o sistema aceitá-lo como autêntico.


A solução


A correção substitui o marcador constante por um marcador keyed, calculado como um checksum da forma (salt || setor). Agora, mesmo que um atacante escreva o valor antigo (0xf6), o sistema não o aceitará como prova de descarte sem a chave correta.

Um novo parâmetro de alvo, allow_discards_keyed, foi adicionado para controlar esse comportamento.


dm-stats: correção de crash em falha de alocação


O dm-stats coleta estatísticas de I/O para dispositivos Device Mapper. No Linux 7.3, foi corrigido um bug que causava crash do kernel quando a alocação de memória para estatísticas por-CPU falhava.

O problema ocorria porque, em caso de falha de alocação no meio do loop, o código pulava para a rotina de limpeza (dm_stat_free), que tentava liberar memória que nunca havia sido alocada — resultando em NULL pointer dereference.

A correção adiciona uma verificação de NULL antes de acessar cada ponteiro.


dm-dust: funcionando fora da primeira posição


O dm-dust é um alvo usado para testes de falha — ele simula erros de leitura em setores específicos. No Linux 7.3, foi corrigido um bug que impedia o dm-dust de funcionar corretamente quando não era o primeiro alvo na tabela.

Agora, o dm-dust pode ser usado em cadeias de dispositivos (por exemplo, sobre um volume LVM ou dm-crypt) sem problemas.


dm-era: vazamento de referência do superblock

O dm-era é usado para rastrear quais blocos foram escritos em determinados períodos (eras), sendo útil para backup incremental. No Linux 7.3, foi corrigido um vazamento de referência no superblock.

Quando a criação de um snapshot falhava, uma referência ao superblock permanecia no mapa de espaço, impedindo a liberação correta daquele bloco. Com o tempo, isso podia levar ao esgotamento do espaço de metadados.

A correção adiciona a chamada dm_sm_dec_block() para decrementar a referência em caso de falha.


Perguntas Frequentes (FAQ)


1. O Linux 7.3 traz alguma nova funcionalidade importante para o Device Mapper ?

Não. O foco do Linux 7.3 para o Device Mapper foi correção de bugs e limpeza de código. Não há novos alvos ou recursos principais. No entanto, as dezenas de correções aumentam significativamente a estabilidade e segurança do subsistema.


2. O que significa "limpezas de código encontradas por Claude Opus 4.6" ?

Significa que o modelo de IA Claude Opus 4.6, da Anthropic, foi usado para analisar o código-fonte do Device Mapper e identificar seis problemas menores que passaram despercebidos. Isso inclui desde código redundante até pequenos vazamentos de memória. É um exemplo de como IAs generativas já estão contribuindo para o desenvolvimento do kernel Linux.


3. Preciso fazer alguma configuração extra para me beneficiar dessas correções ?

Não. Todas as correções mencionadas já estão mescladas no kernel Linux 7.3 e serão aplicadas automaticamente ao atualizar seu sistema. No entanto, se você usa o dm-integrity com discard, pode ser necessário verificar a nova opção allow_discards_keyed em suas configurações.


Checklist: O que fazer após atualizar para o Linux 7.3

Copie e use esse Checklist


✅ 1. Atualize o kernel para a versão 7.3 ou superior no seu sistema.

✅ 2. Reinicie o servidor para carregar o novo kernel.

✅ 3. Verifique os logs do kernel em busca de mensagens relacionadas a dm-*:

bash
dmesg | grep -i dm
journalctl -k -f | grep -i dm

4. Se usar dm-integrity com discard, revise suas configurações e considere habilitar allow_discards_keyed para maior segurança.

✅ 5. Teste seus volumes lógicos e dispositivos mapeados com dmsetup status e dmsetup table.

✅ 6. Monitore estatísticas de I/O com dmsetup stats para garantir que não há erros.

✅ 7. Se usar dm-dust em cadeias de dispositivos, verifique se ele agora funciona corretamente fora da primeira posição.

✅ 8. Mantenha um backup dos metadados dos seus volumes LVM e dm-cache antes de qualquer operação crítica.


Nenhum comentário:

Postar um comentário