- The PFS processes requests for UNMOUNT with the NORMAL, IMMEDIATE,
and FORCE options as follows:
- NORMAL. Synchronizes all data buffers to disk (if appropriate
for this PFS). This saves all data changes to files in the file system
that is being unmounted. If an I/O error occurs during this activity,
the unmount request fails.
- IMMEDIATE. Synchronizes all data buffers to disk (if appropriate
for this PFS). If an I/O error occurs during this activity, the unmount
request fails.
- FORCE. Synchronizes all data buffers to disk (if appropriate
for this PFS). If an I/O error occurs during this activity, the unmount
proceeds anyway and data is lost.
The difference between NORMAL and IMMEDIATE is whether the
PFS is likely to find itself with any active inodes other than the
one belonging to the root. The difference between IMMEDIATE and FORCE
is whether the PFS continues if it encounters an I/O error while trying
to synchronize data during the unmount.
- The PFS frees any inodes that are still active, including the
root inode, which is never explicitly inactivated.
- The PFS reverses the vfs_mount and returns the file system to
unready status.
Serialization: The whole file system is serialized under
an exclusive latch at the time vfs_umount is called. No other vnode
or VFS operations are running, although some may be in the PFS in
a blocked state. See LFS-PFS control block serialization for more about
serialization and blocking.