We conclude this chapter by describing the steps performed by the VFS when opening a block device file.
The kernel opens a block device file every time that a filesystem
is mounted over a disk or partition, every time that a swap partition is
activated, and every time that a User Mode process issues an
open( ) system call on a block device file. In all cases, the
kernel executes essentially the same operations: it looks for the block
device descriptor (possibly allocating a new descriptor if the block
device is not already in use), and sets up the file operation methods
for the forthcoming data transfers.
In the section "VFS
Handling of Device Files" in Chapter 13, we described how the
dentry_open( ) function customizes
the methods of the file object when a device file is opened. In this
f_op field of the file
object is set to the address of the
def_blk_fops table, whose content is shown in
Table 14-10. The default block device file operations (def_blk_fops table)
Here we are only concerned ...