This is regarding the control flow in an ext3 filesystem.
I tried to move through the source code (generic files, fs/etx3 ), for making up a tree which can show what happens when a user tries to read/write a file from a etx3 (mounted) partition.

THis is what I came up with:
read (user mode) -> ext3_file_write -> generic_file_write -> do_generic_file_write -> commit_write -> __block_commit_write --> ?

All I could trace the call was to a creation of a buffer list. I want to know when/how does the kernel schedule the writing of data from the buffer to hardisk. Can somebody complete this flow.

[ps: Above low may lack few function, which are intermediatry. Also, for read the last i could trace was to do_generic_file_read)

Think OPEN, provide SOURCE