[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-nfsv4
Subject:    [PATCH 2/4] mount.nfs: Keep server's address in nfsmount_info
From:       Chuck Lever <chuck.lever () oracle ! com>
Date:       2009-09-27 2:08:03
Message-ID: 20090927020802.3700.55575.stgit () matisse ! 1015granger ! net
[Download RAW message or body]

We want to pass the server's address around.  Put it in the mount context
structure.

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

 utils/mount/stropts.c |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
index 3eb661e..76bbefd 100644
--- a/utils/mount/stropts.c
+++ b/utils/mount/stropts.c
@@ -80,6 +80,8 @@ struct nfsmount_info {
 				*node,		/* mounted-on dir */
 				*type;		/* "nfs" or "nfs4" */
 	char			*hostname;	/* server's hostname */
+	struct sockaddr_storage	address;	/* server's address */
+	socklen_t		salen;		/* size of server's address */
 
 	struct mount_options	*options;	/* parsed mount options */
 	char			**extra_opts;	/* string for /etc/mtab */
@@ -263,14 +265,13 @@ static int nfs_append_sloppy_option(struct mount_options *options)
  */
 static int nfs_validate_options(struct nfsmount_info *mi)
 {
-	struct sockaddr_storage dummy;
-	struct sockaddr *sap = (struct sockaddr *)&dummy;
-	socklen_t salen = sizeof(dummy);
+	struct sockaddr *sap = (struct sockaddr *)&mi->address;
 
 	if (!nfs_parse_devname(mi->spec, &mi->hostname, NULL))
 		return 0;
 
-	if (!nfs_name_to_address(mi->hostname, sap, &salen))
+	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))
@@ -279,7 +280,7 @@ static int nfs_validate_options(struct nfsmount_info *mi)
 		mi->version = 4;
 
 	if (mi->version == 4) {
-		if (!nfs_append_clientaddr_option(sap, salen, mi->options))
+		if (!nfs_append_clientaddr_option(sap, mi->salen, mi->options))
 			return 0;
 	} else {
 		if (!nfs_fix_mounthost_option(mi->options))
@@ -291,7 +292,7 @@ static int nfs_validate_options(struct nfsmount_info *mi)
 	if (!nfs_append_sloppy_option(mi->options))
 		return 0;
 
-	if (!nfs_append_addr_option(sap, salen, mi->options))
+	if (!nfs_append_addr_option(sap, mi->salen, mi->options))
 		return 0;
 
 	/*

_______________________________________________
NFSv4 mailing list
NFSv4@linux-nfs.org
http://linux-nfs.org/cgi-bin/mailman/listinfo/nfsv4
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic