2008-06-30 23:00:35

by Chuck Lever

[permalink] [raw]
Subject: [PATCH 03/16] 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 <[email protected]>
---

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 350d757..618c631 100644
--- a/fs/lockd/host.c
+++ b/fs/lockd/host.c
@@ -215,10 +215,12 @@ struct nlm_host *nlmclnt_lookup_host(const struct sockaddr_in *sin,
const char *hostname,
unsigned int hostname_len)
{
- struct sockaddr_in ssin = {0};
+ const struct sockaddr_in source = {
+ .sin_family = AF_UNSPEC,
+ };

return nlm_lookup_host(0, sin, proto, version,
- hostname, hostname_len, &ssin);
+ hostname, hostname_len, &source);
}

/*
@@ -228,12 +230,14 @@ struct nlm_host *
nlmsvc_lookup_host(struct svc_rqst *rqstp,
const char *hostname, unsigned int hostname_len)
{
- struct sockaddr_in ssin = {0};
+ const struct sockaddr_in source = {
+ .sin_family = AF_INET,
+ .sin_addr = rqstp->rq_daddr.addr,
+ };

- ssin.sin_addr = rqstp->rq_daddr.addr;
return nlm_lookup_host(1, svc_addr_in(rqstp),
rqstp->rq_prot, rqstp->rq_vers,
- hostname, hostname_len, &ssin);
+ hostname, hostname_len, &source);
}

/*