Update nfs_try_mount() to support AF_INET6 family addresses.

Signed-off-by: Chuck Lever <[EMAIL PROTECTED]>
---

 fs/nfs/super.c |   19 ++++++++++---------
 1 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index 3ea4a4f..2abef88 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -1048,7 +1048,7 @@ out_unknown:
 static int nfs_try_mount(struct nfs_parsed_mount_data *args,
                         struct nfs_fh *root_fh)
 {
-       struct sockaddr_in sin;
+       struct sockaddr *sap = (struct sockaddr *)&args->mount_server.address;
        int status;
        char *hostname;
 
@@ -1067,24 +1067,25 @@ static int nfs_try_mount(struct nfs_parsed_mount_data 
*args,
        /*
         * Construct the mount server's address.
         */
-       if (args->mount_server.addrlen != 0)
-               memcpy(&sin, &args->mount_server.address, sizeof(sin));
-       else
-               memcpy(&sin, &args->nfs_server.address, sizeof(sin));
+       if (args->mount_server.addrlen == 0) {
+               memcpy(&args->mount_server.address,
+                      &args->nfs_server.address,
+                      args->nfs_server.addrlen);
+               args->mount_server.addrlen = args->nfs_server.addrlen;
+       }
 
        /*
         * autobind will be used if mount_server.port == 0
         */
-       if (nfs_set_address_port((struct sockaddr *)&sin,
-                                       args->mount_server.port))
+       if (nfs_set_address_port(sap, args->mount_server.port))
                return -EAFNOSUPPORT;
 
        /*
         * Now ask the mount server to map our export path
         * to a file handle.
         */
-       status = nfs_mount((struct sockaddr *) &sin,
-                          sizeof(sin),
+       status = nfs_mount(sap,
+                          args->mount_server.addrlen,
                           hostname,
                           args->nfs_server.export_path,
                           args->mount_server.version,

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to