From 3125e3a0c51e4adbcdcf240536e5778377b42d9a Mon Sep 17 00:00:00 2001 From: Chuck Lever Date: Mon, 10 Dec 2007 14:59:06 -0500 Subject: [PATCH] --- yaml --- r: 79641 b: refs/heads/master c: 6677d09513e35ac2f38d3a8c8a26fbd7bbcef192 h: refs/heads/master i: 79639: 9f0ae8dcaecd57dd13dd011b3588b5ec5acd7cb1 v: v3 --- [refs] | 2 +- trunk/fs/nfs/client.c | 4 ++-- trunk/fs/nfs/internal.h | 3 ++- trunk/fs/nfs/nfs4namespace.c | 12 +++++++----- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index 070a1cd7045e..00dbafa9f175 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: dcecae0ff44dceea7adb6bef5c8eb660fe87a93c +refs/heads/master: 6677d09513e35ac2f38d3a8c8a26fbd7bbcef192 diff --git a/trunk/fs/nfs/client.c b/trunk/fs/nfs/client.c index 11380601fc78..ba114faf195f 100644 --- a/trunk/fs/nfs/client.c +++ b/trunk/fs/nfs/client.c @@ -1094,8 +1094,8 @@ struct nfs_server *nfs4_create_referral_server(struct nfs_clone_mount *data, /* Get a client representation. * Note: NFSv4 always uses TCP, */ error = nfs4_set_client(server, data->hostname, - (struct sockaddr *)data->addr, - sizeof(*data->addr), + data->addr, + data->addrlen, parent_client->cl_ipaddr, data->authflavor, parent_server->client->cl_xprt->prot, diff --git a/trunk/fs/nfs/internal.h b/trunk/fs/nfs/internal.h index c8458b168018..75dd4e252cae 100644 --- a/trunk/fs/nfs/internal.h +++ b/trunk/fs/nfs/internal.h @@ -21,7 +21,8 @@ struct nfs_clone_mount { struct nfs_fattr *fattr; char *hostname; char *mnt_path; - struct sockaddr_in *addr; + struct sockaddr *addr; + size_t addrlen; rpc_authflavor_t authflavor; }; diff --git a/trunk/fs/nfs/nfs4namespace.c b/trunk/fs/nfs/nfs4namespace.c index bd1b1617905d..5f9ba41ed5bf 100644 --- a/trunk/fs/nfs/nfs4namespace.c +++ b/trunk/fs/nfs/nfs4namespace.c @@ -172,7 +172,10 @@ static struct vfsmount *nfs_follow_referral(const struct vfsmount *mnt_parent, s = 0; while (s < location->nservers) { - struct sockaddr_in addr = {}; + struct sockaddr_in addr = { + .sin_family = AF_INET, + .sin_port = htons(NFS_PORT), + }; if (location->servers[s].len <= 0 || valid_ipaddr4(location->servers[s].data) < 0) { @@ -181,10 +184,9 @@ static struct vfsmount *nfs_follow_referral(const struct vfsmount *mnt_parent, } mountdata.hostname = location->servers[s].data; - addr.sin_addr.s_addr = in_aton(mountdata.hostname); - addr.sin_family = AF_INET; - addr.sin_port = htons(NFS_PORT); - mountdata.addr = &addr; + addr.sin_addr.s_addr = in_aton(mountdata.hostname), + mountdata.addr = (struct sockaddr *)&addr; + mountdata.addrlen = sizeof(addr); snprintf(page, PAGE_SIZE, "%s:%s", mountdata.hostname,