diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2007-08-03 13:23:39 -0400 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2007-08-04 08:27:40 +1000 |
commit | 59a5507df986d27db7cd38fcd8be5d94eff0fa39 (patch) | |
tree | eafafad7ab98de92d7c0f8ea60c52a815b611a75 | |
parent | 2f1ade1adf8074efbd661d41758d8844ab5f522e (diff) | |
download | nfs-utils-59a5507df986d27db7cd38fcd8be5d94eff0fa39.tar.gz nfs-utils-59a5507df986d27db7cd38fcd8be5d94eff0fa39.tar.xz nfs-utils-59a5507df986d27db7cd38fcd8be5d94eff0fa39.zip |
mount.nfs: umount needs to pick up transport option from /etc/mtab
Now that umount's default transport protocol has become more flexible, it
will need to detect both proto=udp and proto=tcp in /etc/mtab.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Neil Brown <neilb@suse.de>
-rw-r--r-- | utils/mount/nfsumount.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/utils/mount/nfsumount.c b/utils/mount/nfsumount.c index e8814a3..a78ab26 100644 --- a/utils/mount/nfsumount.c +++ b/utils/mount/nfsumount.c @@ -119,6 +119,16 @@ static int del_mtab(const char *spec, const char *node) return EX_FILEIO; } +/* + * Pick up certain mount options used during the original mount + * from /etc/mtab. The basics include the server's IP address and + * the server pathname of the share to unregister. + * + * These options might also describe the mount port, mount protocol + * version, and transport protocol used to punch through a firewall. + * We will need this information to get through the firewall again + * to do the umount. + */ static int do_nfs_umount(const char *spec, char *opts) { char *hostname; @@ -184,6 +194,8 @@ static int do_nfs_umount(const char *spec, char *opts) pmap->pm_vers = atoi(p+10); if (opts && (hasmntopt(&mnt, "udp") || hasmntopt(&mnt, "proto=udp"))) pmap->pm_prot = IPPROTO_UDP; + if (opts && (hasmntopt(&mnt, "tcp") || hasmntopt(&mnt, "proto=tcp"))) + pmap->pm_prot = IPPROTO_TCP; if (!nfs_gethostbyname(hostname, &mnt_server.saddr)) { nfs_error(_("%s: '%s' does not contain a recognized hostname"), |