The Linux file system drivers have been threaded for ages. Multiple
processes can access different files in an overlapping fashion; while
one process is waiting for a request to complete, the file system might
already look into the request of another process.
There are a few places where concurrent access is not desirable, Linux
supports locks on the inode level and on the superblock level for
these cases.
Hope this helps,
Martin