블럭 디바이스 드라이버에서 제가 정의한 구조체 데이터를 bio를 이용해서 직접 쓰고 읽는 방법을 알고 싶습니다.
md.c의 md_super_write와 sync_page_io(?) 이 두 함수를 참고해서 테스트 해보고 있는데
디스크에 쓰고 나서 바로 읽으면 제가 썻던 데이터를 그대로 읽을 수 있습니다.
문제는 재부팅 혹은 모듈을 내렸다가 다시 올려서 제가 데이터를 썻던 위치에 다시 읽어보면
전혀 다른 쓰레기 값이 읽혀집니다.
제 생각에는 디스크에 쓸 때 버퍼에만 쓰여지고 실제 디스크에는 반영이 되지 않아서 이런 현상이 발생 하는 것 같은데
제 생각이 맞는건지 틀린건지 잘 모르겠습니다.
조언 부탁드립니다.