SUNRPC: parametrize rpc_pton6() by network context
authorStanislav Kinsbursky <skinsbursky@parallels.com>
Fri, 13 Jan 2012 09:09:11 +0000 (13:09 +0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 1 Feb 2012 00:28:11 +0000 (19:28 -0500)
Parametrize rpc_pton6() by network context and thus force it's caller
to pass in network context instead of using hard-coded "init_net".

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/addr.c

index cc83de1..18c40a2 100644 (file)
@@ -198,7 +198,7 @@ static int rpc_parse_scope_id(struct net *net, const char *buf,
        return 0;
 }
 
-static size_t rpc_pton6(const char *buf, const size_t buflen,
+static size_t rpc_pton6(struct net *net, const char *buf, const size_t buflen,
                        struct sockaddr *sap, const size_t salen)
 {
        struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)sap;
@@ -214,14 +214,14 @@ static size_t rpc_pton6(const char *buf, const size_t buflen,
        if (in6_pton(buf, buflen, addr, IPV6_SCOPE_DELIMITER, &delim) == 0)
                return 0;
 
-       if (!rpc_parse_scope_id(&init_net, buf, buflen, delim, sin6))
+       if (!rpc_parse_scope_id(net, buf, buflen, delim, sin6))
                return 0;
 
        sin6->sin6_family = AF_INET6;
        return sizeof(struct sockaddr_in6);
 }
 #else
-static size_t rpc_pton6(const char *buf, const size_t buflen,
+static size_t rpc_pton6(struct net *net, const char *buf, const size_t buflen,
                        struct sockaddr *sap, const size_t salen)
 {
        return 0;
@@ -249,7 +249,7 @@ size_t rpc_pton(const char *buf, const size_t buflen,
 
        for (i = 0; i < buflen; i++)
                if (buf[i] == ':')
-                       return rpc_pton6(buf, buflen, sap, salen);
+                       return rpc_pton6(&init_net, buf, buflen, sap, salen);
        return rpc_pton4(buf, buflen, sap, salen);
 }
 EXPORT_SYMBOL_GPL(rpc_pton);