whether to READ or WRITE, or maybe to READA (read ahead)
The &struct buffer_head which describes the I/O
submit_bh is very similar in purpose to generic_make_request, and uses that function to do most of the work.
The extra functionality provided by submit_bh is to determine b_rsector from b_blocknr and b_size, and to set b_rdev from b_dev. This is is appropriate for IO requests that come from the buffer cache and page cache which (currently) always use aligned blocks.