안녕하세요.
지금 제가 scsi high level 디바이스 드라이버 (driver/scsi/scsi_lib.c)에서 별도의 block request를 생성해서 보내려고 하고 있는데요..
환경은 SATA 디바이스가 연결된 상황이고, SATA는 block interface를 scsi device driver와 공유해서 사용하기 때문에 scsi_lib.c에서 작업을 진행하고 있습니다.
궁금한건, 제가 파일시스템을 통해 내려오지 않은 임의의 request를 생성해서 보내고 싶고, 해당 request는 일반적인 write function과 유사하며, 2 page 이상의 write를 보내게 되는데, 이러한 request를 device driver 내부에서 VFS와 파일시스템을 거치지 않고 생성하는 방법이 뭔지 궁금해서요..
일단 제가 찾아본바로는 blk_make_request란 함수가 별도의 request를 생성하게 해주는 거 같아서 해당 request를 사용해서 코드를 좀 짜봤는데,
코드는 개략적으로 다음과 같습니다.