From: Wei Yongjun Date: Wed, 14 Mar 2007 07:51:38 +0000 (+0800) Subject: Use correct UMNT version to do umount X-Git-Tag: nfs-utils-1-1-0-rc1~76 X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=commitdiff_plain;h=d4848a7d7d849c0b8d96096707c4df3fc291b4e3;hp=116748fccf43b246f200ec1ece0a300e43042f31 Use correct UMNT version to do umount This patch lets umount to use correct UMNT version to do umount. In latest kernel, the version format is "vers=3" etc., and in old kernel the version format is "v3","v4" etc. Signed-off-by: Wei Yongjun Signed-off-by: Neil Brown --- diff --git a/utils/mount/nfsumount.c b/utils/mount/nfsumount.c index 28f4244..fa13725 100644 --- a/utils/mount/nfsumount.c +++ b/utils/mount/nfsumount.c @@ -257,6 +257,7 @@ int _nfsumount(const char *spec, const char *opts) char *hostname; char *dirname; clnt_addr_t mnt_server = { &hostname, }; + struct mntent mnt = { .mnt_opts = opts }; struct pmap *pmap = &mnt_server.pmap; char *p; @@ -290,14 +291,20 @@ int _nfsumount(const char *spec, const char *opts) } pmap->pm_prog = MOUNTPROG; - pmap->pm_vers = MOUNTVERS; + pmap->pm_vers = MOUNTVERS_NFSV3; pmap->pm_prot = get_mntproto(spec); if (opts && (p = strstr(opts, "mountprog=")) && isdigit(*(p+10))) pmap->pm_prog = atoi(p+10); if (opts && (p = strstr(opts, "mountport=")) && isdigit(*(p+10))) pmap->pm_port = atoi(p+10); - if (opts && (p = strstr(opts, "nfsvers=")) && isdigit(*(p+8))) - pmap->pm_vers = nfsvers_to_mnt(atoi(p+8)); + if (opts && hasmntopt(&mnt, "v2")) + pmap->pm_vers = nfsvers_to_mnt(2); + if (opts && hasmntopt(&mnt, "v3")) + pmap->pm_vers = nfsvers_to_mnt(3); + if (opts && hasmntopt(&mnt, "v4")) + pmap->pm_vers = nfsvers_to_mnt(4); + if (opts && (p = strstr(opts, "vers=")) && isdigit(*(p+5))) + pmap->pm_vers = nfsvers_to_mnt(atoi(p+5)); if (opts && (p = strstr(opts, "mountvers=")) && isdigit(*(p+10))) pmap->pm_vers = atoi(p+10);