]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
SUNRPC: parametrize rpc_pton() by network context
authorStanislav Kinsbursky <skinsbursky@parallels.com>
Fri, 13 Jan 2012 09:09:19 +0000 (13:09 +0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 1 Feb 2012 00:28:12 +0000 (19:28 -0500)
Parametrize rpc_pton() by network context and thus force it's callers 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>
fs/nfs/dns_resolve.c
fs/nfs/nfs4filelayoutdev.c
fs/nfs/nfs4namespace.c
fs/nfs/super.c
fs/nfsd/nfsctl.c
include/linux/sunrpc/clnt.h
net/sunrpc/addr.c
net/sunrpc/svcauth_unix.c

index 200eb67c95d972d81adf1a4401d796757b794676..7edc62a8a64fa23f81fa140205c2548f97245083 100644 (file)
@@ -20,7 +20,7 @@ ssize_t nfs_dns_resolve_name(struct net *net, char *name, size_t namelen,
 
        ip_len = dns_query(NULL, name, namelen, NULL, &ip_addr, NULL);
        if (ip_len > 0)
-               ret = rpc_pton(ip_addr, ip_len, sa, salen);
+               ret = rpc_pton(&init_net, ip_addr, ip_len, sa, salen);
        else
                ret = -ESRCH;
        kfree(ip_addr);
@@ -224,7 +224,7 @@ static int nfs_dns_parse(struct cache_detail *cd, char *buf, int buflen)
        len = qword_get(&buf, buf1, sizeof(buf1));
        if (len <= 0)
                goto out;
-       key.addrlen = rpc_pton(buf1, len,
+       key.addrlen = rpc_pton(&init_net, buf1, len,
                        (struct sockaddr *)&key.addr,
                        sizeof(key.addr));
 
index 8ae91908f5aa6fa38c128348beb272ddb6226a3b..0d8b9523a3cb6fec207d551a63530205ce66302a 100644 (file)
@@ -457,7 +457,7 @@ decode_ds_addr(struct xdr_stream *streamp, gfp_t gfp_flags)
 
        INIT_LIST_HEAD(&da->da_node);
 
-       if (!rpc_pton(buf, portstr-buf, (struct sockaddr *)&da->da_addr,
+       if (!rpc_pton(&init_net, buf, portstr-buf, (struct sockaddr *)&da->da_addr,
                      sizeof(da->da_addr))) {
                dprintk("%s: error parsing address %s\n", __func__, buf);
                goto out_free_da;
index 919a36935924562b42067cdad0bac1389d43e59a..48a9acdbaeb6d53b5e40c5ce2c903fd0e9a2dd26 100644 (file)
@@ -98,7 +98,7 @@ static size_t nfs_parse_server_name(char *string, size_t len,
 {
        ssize_t ret;
 
-       ret = rpc_pton(string, len, sa, salen);
+       ret = rpc_pton(&init_net, string, len, sa, salen);
        if (ret == 0) {
                ret = nfs_dns_resolve_name(server->client->cl_xprt->xprt_net,
                                           string, len, sa, salen);
index e45feb0fee59f46d97a097098fb4162d7e77f1ae..b79f2a11c29ef1e7c18261c43cf49db45378ae8f 100644 (file)
@@ -1408,7 +1408,7 @@ static int nfs_parse_mount_options(char *raw,
                        if (string == NULL)
                                goto out_nomem;
                        mnt->nfs_server.addrlen =
-                               rpc_pton(string, strlen(string),
+                               rpc_pton(&init_net, string, strlen(string),
                                        (struct sockaddr *)
                                        &mnt->nfs_server.address,
                                        sizeof(mnt->nfs_server.address));
@@ -1430,7 +1430,7 @@ static int nfs_parse_mount_options(char *raw,
                        if (string == NULL)
                                goto out_nomem;
                        mnt->mount_server.addrlen =
-                               rpc_pton(string, strlen(string),
+                               rpc_pton(&init_net, string, strlen(string),
                                        (struct sockaddr *)
                                        &mnt->mount_server.address,
                                        sizeof(mnt->mount_server.address));
index 748eda93ce590d1ad1e4f7892f29e25f8ad8856a..330352d379b68a0c257b3046dddc6139fd6866bd 100644 (file)
@@ -223,7 +223,7 @@ static ssize_t write_unlock_ip(struct file *file, char *buf, size_t size)
        if (qword_get(&buf, fo_path, size) < 0)
                return -EINVAL;
 
-       if (rpc_pton(fo_path, size, sap, salen) == 0)
+       if (rpc_pton(&init_net, fo_path, size, sap, salen) == 0)
                return -EINVAL;
 
        return nlmsvc_unlock_all_by_ip(sap);
index e891a8a18cb304a1d1f30e275ec588cbbe2be6b1..7bd114fc84e3ed09bff9a4ef356229f87157f9fa 100644 (file)
@@ -163,7 +163,7 @@ size_t              rpc_peeraddr(struct rpc_clnt *, struct sockaddr *, size_t);
 const char     *rpc_peeraddr2str(struct rpc_clnt *, enum rpc_display_format_t);
 
 size_t         rpc_ntop(const struct sockaddr *, char *, const size_t);
-size_t         rpc_pton(const char *, const size_t,
+size_t         rpc_pton(struct net *, const char *, const size_t,
                         struct sockaddr *, const size_t);
 char *         rpc_sockaddr2uaddr(const struct sockaddr *, gfp_t);
 size_t         rpc_uaddr2sockaddr(const char *, const size_t,
index 18c40a2002fb51618f846be20a5eaefea943ab40..82b06b73c1e1429fd54fa6e051d6daac4e67e759 100644 (file)
@@ -230,6 +230,7 @@ static size_t rpc_pton6(struct net *net, const char *buf, const size_t buflen,
 
 /**
  * rpc_pton - Construct a sockaddr in @sap
+ * @net: applicable network namespace
  * @buf: C string containing presentation format IP address
  * @buflen: length of presentation address in bytes
  * @sap: buffer into which to plant socket address
@@ -242,14 +243,14 @@ static size_t rpc_pton6(struct net *net, const char *buf, const size_t buflen,
  * socket address, if successful.  Returns zero if an error
  * occurred.
  */
-size_t rpc_pton(const char *buf, const size_t buflen,
+size_t rpc_pton(struct net *net, const char *buf, const size_t buflen,
                struct sockaddr *sap, const size_t salen)
 {
        unsigned int i;
 
        for (i = 0; i < buflen; i++)
                if (buf[i] == ':')
-                       return rpc_pton6(&init_net, buf, buflen, sap, salen);
+                       return rpc_pton6(net, buf, buflen, sap, salen);
        return rpc_pton4(buf, buflen, sap, salen);
 }
 EXPORT_SYMBOL_GPL(rpc_pton);
@@ -340,7 +341,7 @@ size_t rpc_uaddr2sockaddr(const char *uaddr, const size_t uaddr_len,
        port = (unsigned short)((porthi << 8) | portlo);
 
        *c = '\0';
-       if (rpc_pton(buf, strlen(buf), sap, salen) == 0)
+       if (rpc_pton(&init_net, buf, strlen(buf), sap, salen) == 0)
                return 0;
 
        switch (sap->sa_family) {
index 01153ead1dbaf3d982e4d57bfacccce674b507a4..2f8c426c13844b8978f784d496f75659c9280785 100644 (file)
@@ -211,7 +211,7 @@ static int ip_map_parse(struct cache_detail *cd,
        len = qword_get(&mesg, buf, mlen);
        if (len <= 0) return -EINVAL;
 
-       if (rpc_pton(buf, len, &address.sa, sizeof(address)) == 0)
+       if (rpc_pton(&init_net, buf, len, &address.sa, sizeof(address)) == 0)
                return -EINVAL;
        switch (address.sa.sa_family) {
        case AF_INET: