Currently I'm digging into I/O stack of linux kernel (v4.14), especially for block devices.
Whenever an I/O request is happened through VFS, and the request goes through ext4 file system, how can ext4 can be noticed when the requested i/o is completed? Where should I look for the i/o completion handling policy?
I followed to the point inside the function ext4_mpage_readpages() inside ext4/readpage.c, but cannot go further...
It seems for the case of direct IO, waiting routine for direct I/O is obvious to find (dio_await_completion), but hard to figure out for the case of buffered IO. Maybe my understanding in direct / buffered IO is not adequate.
I'm very new to linux kernel, so I appreciate any advice!