[블럭 디바이스 드라이버] 디스크에 직접 I/O 방법 질문
글쓴이: ndmnwg / 작성시간: 목, 2012/11/01 - 11:14오후
블럭 디바이스 드라이버에서 제가 정의한 구조체 데이터를 bio를 이용해서 직접 쓰고 읽는 방법을 알고 싶습니다.
md.c의 md_super_write와 sync_page_io(?) 이 두 함수를 참고해서 테스트 해보고 있는데
디스크에 쓰고 나서 바로 읽으면 제가 썻던 데이터를 그대로 읽을 수 있습니다.
문제는 재부팅 혹은 모듈을 내렸다가 다시 올려서 제가 데이터를 썻던 위치에 다시 읽어보면
전혀 다른 쓰레기 값이 읽혀집니다.
제 생각에는 디스크에 쓸 때 버퍼에만 쓰여지고 실제 디스크에는 반영이 되지 않아서 이런 현상이 발생 하는 것 같은데
제 생각이 맞는건지 틀린건지 잘 모르겠습니다.
조언 부탁드립니다.
Forums:
kernel/power/block_io.c 를
kernel/power/block_io.c 를 보세요.
kernel/power/block_io.c
kernel/power/block_io.c가 없네요...
현재 커널 2.6.32 버전을 쓰고 있는데
무슨 버전부터 지원이 되는건가요?
댓글 달기