I'm currently reading Understanding The Linux Kernel book, as I've understood block I/O request order is like this; user space call => vfs call => I/O scheduler call => block device driver call. What I want to know is where the block device driver issue commands to block device (hard disk etc)? Does it issue commands in a dedicated scheduled kernel thread or in the user process thread where the block I/O request begin?
In which thread does block driver issue commands to block device?
linux kernel;io;block device