Linux 7.2-rc7, 무결성 손실 방지를 위한 Btrfs Fixup Worker 인프라 복구
LINUX STORAGE
SUSE의 David Sterba는 오늘 fixup worker 인프라를 다시 도입하기 위한 pull request를 보냈습니다. 이는 600줄 이상의 기능 코드를 복구하는 것으로, 커널 사이클 후반부에는 매우 큰 변화입니다. 하지만 Sterba가 언급했듯이, 이 기능이 없으면 현재 상황에서 silent data loss (무결성 손실)로 이어질 수 있습니다.
"이 pull request는 fixup worker 인프라를 다시 가져옵니다. 이는 파일 시스템의 지식 없이 dirty (변경됨)로 표시된 페이지/folio를 감지하고 COW (Copy-on-Write) fixup이 필요한 경우를 찾아내는 메커니즘입니다. 이를 수행하지 않을 경우의 결과는 silent data loss (무결성 손실)입니다.
첫 번째 패치는 상세한 시나리오를 다루며, 최근 몇 년간 추가된 folio API 포팅 및 subpage block size 지원 내용도 반영하고 있습니다. 기존의 fixup worker는 오직 페이지(pages)만을 대상으로 했습니다.
이 패치는 비교적 규모가 크며, 코드의 절반은 디버깅 및 지원 코드이고, 나머지는 감지 및 수정에 관한 핵심 설계입니다."
Linus Torvalds는 이미 이 pull request를 승인하였으며, 복구된 인프라는 현재 Linux Git에 포함되어 있습니다.
오늘 이번 주의 다른 Btrfs 수정 사항들을 포함한 별도의 pull request도 있었습니다. 해당 Btrfs pull에는 encoded ioctl write에서의 leak (누수) 수정, highmem이 있는 시스템에서 large folios 비활성화, 그리고 transparent hugepage (THP) 지원이 없는 시스템에서 페이지 크기보다 큰 block size 지원을 비활성화하는 내용이 포함되었습니다.