write() 시스템콜 호출시 LBA값.

puresupe의 이미지

read() 를 할땐..

파일이름을 가지고 inode에 접근해서 i_block[] 을통해서 디스크상의 LBA값을 알아내어,, 파일의 어느정도 크기(블록 or page)를 메모리에
올릴 것입니다.

만약에

이를테면..

vi newfile

과 같이 새로운 파일에 대해 생성을 하고.. 쓰기를 하고..저장을 했을때에는..

LBA값은 어느시점에 결정이 되는걸까요??

생성시..씌여질 시작 LBA값이 결정될거라고 생각해서 ,ext_create()과 같은 함수를 둘러보다가 못찾아서 질문드립니다.

pastime의 이미지

create 시점에서는 inode 할당에만 관여하고
실제로 디스크에 read/write를 하는 시점에서 block에 대한 접근이 수행될 것입니다.

ext2_{read,write}page()에서 ext2_get_block()을 이용하는 것을 볼 수 있습니다.