Specific processing notesThe PFS cannot issue a signal-enabled
wait during unmount processing. Waiting and posting provides
an overview of wait and post processing.
It is not necessary
for the PFS to perform security checking during unmount processing,
because the LFS has already performed all necessary checking.
A
file system that is being mounted asynchronously may be unmounted
before the mount process completes. Consequently, if the PFS returns
only the vnode_token on the second call to vfs_mount, vfs_unmount
must be capable of successfully unmounting a file system without reference
to its inode token.
If vfs_umount is being invoked for a remount
(MT_REMOUNT or OSI_REMOUNT), the PFS receives a vfs_mount for the
same file system as soon as the vfs_umount completes. This is followed
by vfs_vgets to recreate the vnode-inode pairs that were active at
the time of the unmount operation. If a file was open at the time
of the remount, the vnode's open counter is reestablished through
calls to vn_open.
The PFS does not have to do anything special
for remount; however, for performance reasons, it may want to maintain
some resources at vfs_umount in anticipation of reusing them for the
next vfs_mount. Socket or RPC sessions are examples of resources
that might be worth maintaining.
If the PFS cannot support remount,
it should reject the vfs_umount request. One reason for not supporting
remount is that the PFS would not complete the following vfs_mount
synchronously.