Na fila do driver do sistema de arquivos Btrfs “for-next” antes do ciclo Linux 6.7 está o recurso Temp-FSID (Same-FSID) que está sendo buscado para uso pelo console de jogos Steam Deck da Valve. A funcionalidade é superar uma limitação de permitir que o Btrfs monte dois dispositivos diferentes contendo a mesma imagem do sistema de arquivos e, portanto, o mesmo ID do sistema de arquivos. Assim, o Linux 6.7 adiciona novo recurso ao Btrfs para o Steam Deck.
Esta funcionalidade foi trabalhada por Igalia como parte de seu trabalho com a Valve no aprimoramento do Linux para Steam Deck/SteamOS. Conforme explicado por Guilherme Piccoli da Igalia na série de patches anterior:
“Atualmente, não podemos montar com segurança os mesmos sistemas de arquivos fsid, mesmo um de cada vez, no btrfs, mas se os usuários quiserem montá-los ao mesmo tempo, é praticamente impossível. Outros sistemas de arquivos como o ext4 são capazes disso. O objetivo é permitir que os
sistemas com esquema de particionamento A/B (como o console Steam Deck ou vários dispositivos móveis) para poder manter a mesma imagem do sistema de arquivos em ambas as partições; também permite que o nível do dispositivo de bloco verifique a integridade do sistema de arquivos – isso é usado no Steam Deck instalação da imagem, para verificar se a imagem somente leitura atual está intacta.”
O commit do código adicionando o recurso Btrfs temp-fsid continua adicionando:
“O suporte às montagens do mesmo fsid tem a vantagem de permitir que o btrfs seja usado em dispositivos particionados A/B, como telefones celulares ou Steam Deck, por exemplo. Sem esse suporte, não é seguro para os usuários manterem a mesma” versão da imagem ” em partições A e B, uma configuração bastante comum para desenvolvimento, por exemplo. Além disso, como um grande bônus, permite a verificação de integridade do fs com base em dispositivos de bloco para dispositivos RO (enquanto atualmente é necessário que ambos tenham fsid diferentes, quebrar a comparação de hash do dispositivo de bloco).
Essa montagem do mesmo fsid é adicionada através do uso do recurso do sistema de arquivos “temp-fsid” – quando esse recurso é usado, o btrfs gera um fsid aleatório para o sistema de arquivos e aproveita a infraestrutura metadata_uuid presente de longo prazo para permitir o uso deste fsid “virtual” secundário, exigindo efetivamente poucas alterações não invasivas no código e nenhum novo caso potencial.
Linux 6.7 adiciona novo recurso ao Btrfs para o Steam Deck
Para evitar mais complexidade de código e casos extremos, o recurso temp-fsid não é permitido quando o sinalizador metadata_uuid está presente no fs ou se o dispositivo está no estado fsid-change. A remoção/substituição de dispositivos também está desabilitada para sistemas de arquivos que apresentam o recurso.
Esta funcionalidade foi enfileirada no branch for-next do kdave/linux.git, onde o material Btrfs é preparado antes do próximo ciclo do kernel Linux. Portanto, este novo recurso Btrfs será encontrado no Linux 6.7, impedindo que quaisquer problemas apareçam entre agora e a janela de mesclagem que será aberta no início de novembro. Este recurso Btrfs também foi mencionado na semana passada no OSS EU 2023 como parte das contribuições upstream da Valve para o Linux .