public inbox for linux-nfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Two short pieces for nfs-utils
@ 2009-10-26 21:03 Chuck Lever
       [not found] ` <20091026210110.14346.90636.stgit-RytpoXr2tKZ9HhUboXbp9zCvJB+x5qRC@public.gmane.org>
  0 siblings, 1 reply; 5+ messages in thread
From: Chuck Lever @ 2009-10-26 21:03 UTC (permalink / raw)
  To: steved; +Cc: linux-nfs

Hi Steve-

Here are two bug fixes for recent commits to nfs-utils.  The
nfs_set_version fix was revised based on review comments.

---

Chuck Lever (2):
      mount: Fix po_join() call site in nfs_try_mount_v4()
      mount.nfs: Assume v2/v3 if mount-related options are present


 utils/mount/stropts.c |   55 +++++++++++++++++++++++++++++++++++--------------
 1 files changed, 39 insertions(+), 16 deletions(-)

-- 
Chuck Lever <chuck.lever@oracle.com>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/2] mount.nfs: Assume v2/v3 if mount-related options are present
       [not found] ` <20091026210110.14346.90636.stgit-RytpoXr2tKZ9HhUboXbp9zCvJB+x5qRC@public.gmane.org>
@ 2009-10-26 21:03   ` Chuck Lever
       [not found]     ` <20091026210319.14346.20494.stgit-RytpoXr2tKZ9HhUboXbp9zCvJB+x5qRC@public.gmane.org>
  2009-10-26 21:03   ` [PATCH 2/2] mount: Fix po_join() call site in nfs_try_mount_v4() Chuck Lever
  1 sibling, 1 reply; 5+ messages in thread
From: Chuck Lever @ 2009-10-26 21:03 UTC (permalink / raw)
  To: steved; +Cc: linux-nfs

Don't try NFSv4 if any MNT protocol related options were presented by
the user.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---

 utils/mount/stropts.c |   52 +++++++++++++++++++++++++++++++++++--------------
 1 files changed, 37 insertions(+), 15 deletions(-)

diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
index ceefdb0..0f1061c 100644
--- a/utils/mount/stropts.c
+++ b/utils/mount/stropts.c
@@ -259,24 +259,11 @@ static int nfs_append_sloppy_option(struct mount_options *options)
 	return 1;
 }
 
-/*
- * Set up mandatory non-version specific NFS mount options.
- *
- * Returns 1 if successful; otherwise zero.
- */
-static int nfs_validate_options(struct nfsmount_info *mi)
+static int nfs_set_version(struct nfsmount_info *mi)
 {
-	struct sockaddr *sap = (struct sockaddr *)&mi->address;
-
-	if (!nfs_parse_devname(mi->spec, &mi->hostname, NULL))
-		return 0;
-
-	mi->salen = sizeof(mi->address);
-	if (!nfs_name_to_address(mi->hostname, sap, &mi->salen))
-		return 0;
-
 	if (!nfs_nfs_version(mi->options, &mi->version))
 		return 0;
+
 	if (strncmp(mi->type, "nfs4", 4) == 0)
 		mi->version = 4;
 	else {
@@ -284,6 +271,19 @@ static int nfs_validate_options(struct nfsmount_info *mi)
 		if (option && strcmp(option, "rdma") == 0)
 			mi->version = 3;
 	}
+
+	/*
+	 * If we still don't know, check for version-specific
+	 * mount options.
+	 */
+	if (mi->version == 0) {
+		if (po_contains(mi->options, "mounthost") ||
+		    po_contains(mi->options, "mountaddr") ||
+		    po_contains(mi->options, "mountvers") ||
+		    po_contains(mi->options, "mountproto"))
+			mi->version = 3;
+	}
+
 	/*
 	 * Use the default value set in the config file when
 	 * the version has not been explicitly set.
@@ -293,6 +293,28 @@ static int nfs_validate_options(struct nfsmount_info *mi)
 			mi->version = config_default_vers;
 	}
 
+	return 1;
+}
+
+/*
+ * Set up mandatory non-version specific NFS mount options.
+ *
+ * Returns 1 if successful; otherwise zero.
+ */
+static int nfs_validate_options(struct nfsmount_info *mi)
+{
+	struct sockaddr *sap = (struct sockaddr *)&mi->address;
+
+	if (!nfs_parse_devname(mi->spec, &mi->hostname, NULL))
+		return 0;
+
+	mi->salen = sizeof(mi->address);
+	if (!nfs_name_to_address(mi->hostname, sap, &mi->salen))
+		return 0;
+
+	if (!nfs_set_version(mi))
+		return 0;
+
 	if (!nfs_append_sloppy_option(mi->options))
 		return 0;
 


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] mount: Fix po_join() call site in nfs_try_mount_v4()
       [not found] ` <20091026210110.14346.90636.stgit-RytpoXr2tKZ9HhUboXbp9zCvJB+x5qRC@public.gmane.org>
  2009-10-26 21:03   ` [PATCH 1/2] mount.nfs: Assume v2/v3 if mount-related options are present Chuck Lever
@ 2009-10-26 21:03   ` Chuck Lever
       [not found]     ` <20091026210327.14346.15937.stgit-RytpoXr2tKZ9HhUboXbp9zCvJB+x5qRC@public.gmane.org>
  1 sibling, 1 reply; 5+ messages in thread
From: Chuck Lever @ 2009-10-26 21:03 UTC (permalink / raw)
  To: steved; +Cc: linux-nfs

Make sure the copied options string is freed in case po_join() fails.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---

 utils/mount/stropts.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
index 0f1061c..2d74a54 100644
--- a/utils/mount/stropts.c
+++ b/utils/mount/stropts.c
@@ -605,12 +605,13 @@ static int nfs_try_mount_v4(struct nfsmount_info *mi)
 		errno = EINVAL;
 		goto out_fail;
 	}
+
 	/*
 	 * Update option string to be recorded in /etc/mtab.
 	 */
 	if (po_join(options, mi->extra_opts) == PO_FAILED) {
 		errno = ENOMEM;
-		return 0;
+		goto out_fail;
 	}
 
 	result = nfs_sys_mount(mi, options);


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] mount.nfs: Assume v2/v3 if mount-related options are present
       [not found]     ` <20091026210319.14346.20494.stgit-RytpoXr2tKZ9HhUboXbp9zCvJB+x5qRC@public.gmane.org>
@ 2009-11-03 17:55       ` Steve Dickson
  0 siblings, 0 replies; 5+ messages in thread
From: Steve Dickson @ 2009-11-03 17:55 UTC (permalink / raw)
  To: Chuck Lever; +Cc: linux-nfs



On 10/26/2009 05:03 PM, Chuck Lever wrote:
> Don't try NFSv4 if any MNT protocol related options were presented by
> the user.
> 
> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>

Committed..

steved

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] mount: Fix po_join() call site in nfs_try_mount_v4()
       [not found]     ` <20091026210327.14346.15937.stgit-RytpoXr2tKZ9HhUboXbp9zCvJB+x5qRC@public.gmane.org>
@ 2009-11-03 17:56       ` Steve Dickson
  0 siblings, 0 replies; 5+ messages in thread
From: Steve Dickson @ 2009-11-03 17:56 UTC (permalink / raw)
  To: Chuck Lever; +Cc: linux-nfs



On 10/26/2009 05:03 PM, Chuck Lever wrote:
> Make sure the copied options string is freed in case po_join() fails.
> 
> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> ---
> 

Committed...

steved.


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2009-11-03 17:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-26 21:03 [PATCH 0/2] Two short pieces for nfs-utils Chuck Lever
     [not found] ` <20091026210110.14346.90636.stgit-RytpoXr2tKZ9HhUboXbp9zCvJB+x5qRC@public.gmane.org>
2009-10-26 21:03   ` [PATCH 1/2] mount.nfs: Assume v2/v3 if mount-related options are present Chuck Lever
     [not found]     ` <20091026210319.14346.20494.stgit-RytpoXr2tKZ9HhUboXbp9zCvJB+x5qRC@public.gmane.org>
2009-11-03 17:55       ` Steve Dickson
2009-10-26 21:03   ` [PATCH 2/2] mount: Fix po_join() call site in nfs_try_mount_v4() Chuck Lever
     [not found]     ` <20091026210327.14346.15937.stgit-RytpoXr2tKZ9HhUboXbp9zCvJB+x5qRC@public.gmane.org>
2009-11-03 17:56       ` Steve Dickson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox