
reflink 옵션을 사용하여 파일을 복사할 때, 예를 들어,
cp --reflink foo bar
cp 실행의 어떤 단계와 방법에 따라 하위 파일 시스템이 COW를 지원하는지 여부가 결정됩니다. 조사해 보았지만 coreutils/src/cp.c
특정 시스템 호출/ioctl 또는 COW 기능을 결정하고 이에 따라 cp 실행을 진행하고 오류를 보고하는 다른 방법을 찾을 수 없습니다.
cp: 'foo'에서 'bar'를 복제하지 못했습니다: 잘못된 주소
--reflink=auto
즉, 옵션 의 해결이 어떻게 이루어지는지 찾고 있습니다 .
답변1
그만큼암호라는 함수를 호출합니다.clone_file
reflink 옵션이 "always" 또는 "auto"로 설정된 경우, reflink가 "always"인 경우 복사로 돌아갑니다(reflink가 꺼진 경우 직접 복사로 이동합니다). clone_file
전화하다BTRFS_IOC_CLONE
ioctl. 따라서 시스템이 쓰기 중 복사를 지원하는지 여부는 테스트하지 않고 BTRFS 방법만 시도합니다.