walters / rpms / nfs-utils

Forked from rpms/nfs-utils 6 years ago
Clone
Blob Blame History Raw
diff -up nfs-utils-1.2.0/utils/mount/stropts.c.orig nfs-utils-1.2.0/utils/mount/stropts.c
--- nfs-utils-1.2.0/utils/mount/stropts.c.orig	2009-10-19 11:14:41.000000000 -0400
+++ nfs-utils-1.2.0/utils/mount/stropts.c	2009-10-19 12:25:38.000000000 -0400
@@ -431,11 +431,11 @@ static struct mount_options *nfs_rewrite
 	struct mount_options *options;
 	struct sockaddr_storage nfs_address;
 	struct sockaddr *nfs_saddr = (struct sockaddr *)&nfs_address;
-	socklen_t nfs_salen;
+	socklen_t nfs_salen = sizeof(nfs_address);
 	struct pmap nfs_pmap;
 	struct sockaddr_storage mnt_address;
 	struct sockaddr *mnt_saddr = (struct sockaddr *)&mnt_address;
-	socklen_t mnt_salen;
+	socklen_t mnt_salen = sizeof(mnt_address);
 	struct pmap mnt_pmap;
 
 	options = po_split(str);
@@ -573,7 +573,12 @@ static int nfs_try_nfs23mount(struct nfs
 	if (nfs_sys_mount(mi, "nfs", *extra_opts))
 		return 1;
 
+	/*
+	 * The kernel returns EOPNOTSUPP if the RPC bind failed,
+	 * and EPROTONOSUPPORT if the version isn't supported.
 	if (nfs_is_permanent_error(errno))
+	 */
+	if (errno != EOPNOTSUPP && errno != EPROTONOSUPPORT)
 		return 0;
 
 	return nfs_retry_nfs23mount(mi);
@@ -639,7 +644,6 @@ static int nfsmount_fg(struct nfsmount_i
 	for (;;) {
 		if (nfs_try_mount(mi))
 			return EX_SUCCESS;
-
 		if (nfs_is_permanent_error(errno))
 			break;