It appears that, for a long while, NFS "remount" mounts have
completely wiped the existing mount options in /etc/mtab for a given
mount point. This is a problem for umount.nfs, since it reads its
options out of /etc/mtab to find out how to do the unmount.
The mount(8) command provides the NFS mount subcommand with the mount
options to perform the remount. There are four cases to consider:
1. Both the device and mount directory are specified on the
command line, and the target mount point is in /etc/fstab
2. Only one of the device and mount directory is specified on
the command line, and the target mount point is in
/etc/fstab
3. Both the device and mount directory are specified on the
command line, and the target mount point is not in /etc/fstab
4. Only one of the device and mount directory is specified on
the command line, and the target mount point is not in
/etc/fstab
Currently only case 4 works correctly. In that case, mount(8)
provides the correct set of mount options to the mount.nfs
subcommand and it can update /etc/mtab correctly.
Cases 1 and 3 replace all mount options in /etc/mtab with the options
provided on the command line during a remount. Case 2 replaces the
mount options in /etc/mtab with a mix of options from /etc/fstab and
/etc/mtab.
Cases 1 and 3 are historical behavior. Basically this is a formal
interface to allow administrators to replace the mount options in
/etc/mtab completely, instead of merging in new ones. The present
patch documents that behavior in nfs(5), and provides best practice
for remounting NFS mount points.
There are near-term plans to address case 2 by fixing mount(8)
(provided by utils-linux-ng in most distributions).