diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2008-08-27 16:57:31 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@citi.umich.edu> | 2008-09-29 18:13:38 -0400 |
commit | 2860a0227b700feb8d6e5c4f07a62a1b40d96022 (patch) | |
tree | a0a83210999107a33f5b55ac211299a2f3e034f9 | |
parent | 1b333c54a15a746ff6b04a684b0845a66daacef2 (diff) |
lockd: Specify address family for source address
Make sure an address family is specified for source addresses passed to
nlm_lookup_host(). nlm_lookup_host() will need this when it becomes
capable of dealing with AF_INET6 addresses.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
-rw-r--r-- | fs/lockd/host.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/fs/lockd/host.c b/fs/lockd/host.c index e5dcfa57e099..22423abea281 100644 --- a/fs/lockd/host.c +++ b/fs/lockd/host.c | |||
@@ -220,10 +220,12 @@ struct nlm_host *nlmclnt_lookup_host(const struct sockaddr_in *sin, | |||
220 | const char *hostname, | 220 | const char *hostname, |
221 | unsigned int hostname_len) | 221 | unsigned int hostname_len) |
222 | { | 222 | { |
223 | struct sockaddr_in ssin = {0}; | 223 | const struct sockaddr_in source = { |
224 | .sin_family = AF_UNSPEC, | ||
225 | }; | ||
224 | 226 | ||
225 | return nlm_lookup_host(0, sin, proto, version, | 227 | return nlm_lookup_host(0, sin, proto, version, |
226 | hostname, hostname_len, &ssin); | 228 | hostname, hostname_len, &source); |
227 | } | 229 | } |
228 | 230 | ||
229 | /* | 231 | /* |
@@ -233,12 +235,14 @@ struct nlm_host * | |||
233 | nlmsvc_lookup_host(struct svc_rqst *rqstp, | 235 | nlmsvc_lookup_host(struct svc_rqst *rqstp, |
234 | const char *hostname, unsigned int hostname_len) | 236 | const char *hostname, unsigned int hostname_len) |
235 | { | 237 | { |
236 | struct sockaddr_in ssin = {0}; | 238 | const struct sockaddr_in source = { |
239 | .sin_family = AF_INET, | ||
240 | .sin_addr = rqstp->rq_daddr.addr, | ||
241 | }; | ||
237 | 242 | ||
238 | ssin.sin_addr = rqstp->rq_daddr.addr; | ||
239 | return nlm_lookup_host(1, svc_addr_in(rqstp), | 243 | return nlm_lookup_host(1, svc_addr_in(rqstp), |
240 | rqstp->rq_prot, rqstp->rq_vers, | 244 | rqstp->rq_prot, rqstp->rq_vers, |
241 | hostname, hostname_len, &ssin); | 245 | hostname, hostname_len, &source); |
242 | } | 246 | } |
243 | 247 | ||
244 | /* | 248 | /* |