From: Pavel Emelyanov <xemul@parallels.com>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: "linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>
Subject: [PATCH 10/13] sunrpc: Merge xs_create_sock code
Date: Mon, 04 Oct 2010 16:56:38 +0400 [thread overview]
Message-ID: <4CA9CF06.4070004@parallels.com> (raw)
In-Reply-To: <4CA9CDA8.4010407@parallels.com>
After xs_bind is merged it's easy to merge its callers.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
---
net/sunrpc/xprtsock.c | 46 +++++++++++++++++++++++-----------------------
1 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
index 3618cfd..7095471 100644
--- a/net/sunrpc/xprtsock.c
+++ b/net/sunrpc/xprtsock.c
@@ -1592,6 +1592,14 @@ static inline void xs_reclassify_socket6(struct socket *sock)
sock_lock_init_class_and_name(sk, "slock-AF_INET6-RPC",
&xs_slock_key[1], "sk_lock-AF_INET6-RPC", &xs_key[1]);
}
+
+static inline void xs_reclassify_socket(int family, struct socket *sock)
+{
+ if (family == PF_INET)
+ xs_reclassify_socket4(sock);
+ else
+ xs_reclassify_socket6(sock);
+}
#else
static inline void xs_reclassify_socket4(struct socket *sock)
{
@@ -1600,21 +1608,25 @@ static inline void xs_reclassify_socket4(struct socket *sock)
static inline void xs_reclassify_socket6(struct socket *sock)
{
}
+
+static inline void xs_reclassify_socket(int family, struct socket *sock)
+{
+}
#endif
-static struct socket *xs_create_sock4(struct rpc_xprt *xprt,
- struct sock_xprt *transport, int type, int protocol)
+static struct socket *xs_create_sock(struct rpc_xprt *xprt,
+ struct sock_xprt *transport, int family, int type, int protocol)
{
struct socket *sock;
int err;
- err = __sock_create(xprt->xprt_net, PF_INET, type, protocol, &sock, 1);
+ err = __sock_create(xprt->xprt_net, family, type, protocol, &sock, 1);
if (err < 0) {
dprintk("RPC: can't create %d transport socket (%d).\n",
protocol, -err);
goto out;
}
- xs_reclassify_socket4(sock);
+ xs_reclassify_socket(family, sock);
if (xs_bind(transport, sock)) {
sock_release(sock);
@@ -1626,28 +1638,16 @@ out:
return ERR_PTR(err);
}
-static struct socket *xs_create_sock6(struct rpc_xprt *xprt,
+static struct socket *xs_create_sock4(struct rpc_xprt *xprt,
struct sock_xprt *transport, int type, int protocol)
{
- struct socket *sock;
- int err;
-
- err = __sock_create(xprt->xprt_net, PF_INET6, type, protocol, &sock, 1);
- if (err < 0) {
- dprintk("RPC: can't create %d transport socket (%d).\n",
- protocol, -err);
- goto out;
- }
- xs_reclassify_socket6(sock);
-
- if (xs_bind(transport, sock)) {
- sock_release(sock);
- goto out;
- }
+ return xs_create_sock(xprt, transport, PF_INET, type, protocol);
+}
- return sock;
-out:
- return ERR_PTR(err);
+static struct socket *xs_create_sock6(struct rpc_xprt *xprt,
+ struct sock_xprt *transport, int type, int protocol)
+{
+ return xs_create_sock(xprt, transport, PF_INET6, type, protocol);
}
static void xs_udp_finish_connecting(struct rpc_xprt *xprt, struct socket *sock)
--
1.5.5.6
next prev parent reply other threads:[~2010-10-04 12:56 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-04 12:50 [PATCH 0/13] sunrpc: Compact the xprtsock code a bit Pavel Emelyanov
2010-10-04 12:51 ` [PATCH 1/13] sunrpc: Remove unused sock arg from xs_get_srcport Pavel Emelyanov
2010-10-04 12:51 ` [PATCH 2/13] sunrpc: Remove unused sock arg from xs_next_srcport Pavel Emelyanov
2010-10-04 12:52 ` [PATCH 3/13] sunrpc: Get xprt pointer once in xs_tcp_setup_socket Pavel Emelyanov
2010-10-04 12:52 ` [PATCH 4/13] sunrpc: Remove duplicate xprt/transport arguments from calls Pavel Emelyanov
2010-10-04 12:53 ` [PATCH 5/13] sunrpc: Factor out udp sockets creation Pavel Emelyanov
2010-10-04 12:54 ` [PATCH 6/13] sunrpc: Factor out v4 " Pavel Emelyanov
2010-10-04 12:54 ` [PATCH 7/13] sunrpc: Factor out v6 " Pavel Emelyanov
2010-10-04 12:55 ` [PATCH 8/13] sunrpc: Call xs_create_sockX directly from setup_socket Pavel Emelyanov
2010-10-04 12:56 ` [PATCH 9/13] sunrpc: Merge the xs_bind code Pavel Emelyanov
2010-10-05 3:20 ` Chuck Lever
2010-10-05 5:42 ` Pavel Emelyanov
2010-10-05 11:53 ` [PATCH v2 " Pavel Emelyanov
2010-10-06 3:04 ` Chuck Lever
2010-10-15 16:05 ` J. Bruce Fields
2010-10-15 16:24 ` Pavel Emelyanov
2010-10-15 16:39 ` Chuck Lever
2010-10-15 18:08 ` J. Bruce Fields
2010-10-15 18:09 ` J. Bruce Fields
2010-10-15 18:11 ` Chuck Lever
2010-10-18 21:15 ` J. Bruce Fields
2010-10-18 21:43 ` J. Bruce Fields
2010-10-18 21:53 ` Chuck Lever
2010-10-18 21:57 ` J. Bruce Fields
2010-10-18 22:37 ` Chuck Lever
2010-10-18 23:55 ` J. Bruce Fields
2010-10-19 14:35 ` Chuck Lever
2010-10-19 15:20 ` J. Bruce Fields
2010-10-20 9:19 ` Pavel Emelyanov
2010-10-04 12:56 ` Pavel Emelyanov [this message]
2010-10-04 12:57 ` [PATCH 11/13] sunrpc: Pass family to setup_socket calls Pavel Emelyanov
2010-10-04 12:57 ` [PATCH 12/13] sunrpc: Remove TCP worker wrappers Pavel Emelyanov
2010-10-04 12:58 ` [PATCH 13/13] sunrpc: Remove UDP " Pavel Emelyanov
2010-10-11 23:47 ` [PATCH 0/13] sunrpc: Compact the xprtsock code a bit J. Bruce Fields
2010-10-12 7:51 ` Pavel Emelyanov
2010-10-12 13:50 ` J. Bruce Fields
2010-10-12 15:21 ` Pavel Emelyanov
2010-10-15 15:03 ` J. Bruce Fields
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4CA9CF06.4070004@parallels.com \
--to=xemul@parallels.com \
--cc=bfields@fieldses.org \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.