This routine will attempt to dismount a mounted filesystem and then free
all resources that were allocated for the management of that filesystem.
Development Comments:
This routine will determine if there are any filesystems currently
mounted under the filesystem that we are trying to dismount. This would
prevent the dismount of the filesystem.
It will test to see if the current directory is in the filesystem
that we are attempting to dismount. This would prevent the dismount of the
filesystem.
It will scan all the currently open file descriptors to determine is
there is an open file descriptor to a file in the filesystem that we are
attempting to unmount().
If the above preconditions are met then the following sequence is
performed:
Call the filesystem specific unmount() function for the filesystem
that contains the mount point. This routine should indicate that the mount
point no longer has a filesystem mounted below it.
Call the filesystem specific fsunmount_me() function for the mounted
filesystem that we are trying to unmount(). This routine should clean up
any resources that are no longer needed for the management of the file
system being un-mounted.
Extract the mount table entry for the filesystem that was just
dismounted from the mount table chain.
Free the memory associated with the extracted mount table entry.