Hello friends,

I am new to linux and am supposed to understand a linux block device driver code.
I did my study but am confused with some concepts. Kindly clarify:

1. Difference between bio and request
2. what is a request_fn?
3. How do we process the requests from the request_queue?
4. If we are able to process bio directly, what is the need for request here?

I am quite lost. Some one show light.