[ofa-general] [RFC,PATCH 17/20] svc: Add xpt_get_name service
Tom Tucker
tom at opengridcomputing.com
Mon Aug 20 11:58:03 PDT 2007
Add an transport function to return a formatted socket name.
This is used by knfsd when satisfying reads to the portlist file.
Signed-off-by: Tom Tucker <tom at opengridcomputing.com>
---
include/linux/sunrpc/svcsock.h | 1 +
net/sunrpc/svcsock.c | 17 ++++++++++++-----
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/include/linux/sunrpc/svcsock.h b/include/linux/sunrpc/svcsock.h
index e2d0256..a920e9b 100644
--- a/include/linux/sunrpc/svcsock.h
+++ b/include/linux/sunrpc/svcsock.h
@@ -18,6 +18,7 @@ struct svc_xprt {
int (*xpt_create_svc)(struct svc_serv *,
struct sockaddr *,
int);
+ int (*xpt_get_name)(char *, struct svc_sock*);
int (*xpt_recvfrom)(struct svc_rqst *rqstp);
int (*xpt_sendto)(struct svc_rqst *rqstp);
/*
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index 44d6484..03ce7e9 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -622,10 +622,7 @@ out:
return len;
}
-/*
- * Report socket names for nfsdfs
- */
-static int one_sock_name(char *buf, struct svc_sock *svsk)
+static int svc_sock_get_name(char *buf, struct svc_sock *svsk)
{
int len;
@@ -639,11 +636,19 @@ static int one_sock_name(char *buf, stru
break;
default:
len = sprintf(buf, "*unknown-%d*\n",
- svsk->sk_sk->sk_family);
+ svsk->sk_sk->sk_family);
}
return len;
}
+/*
+ * Report socket names for nfsdfs
+ */
+static int one_sock_name(char *buf, struct svc_sock *svsk)
+{
+ return svsk->sk_xprt->xpt_get_name(buf,svsk);
+}
+
int
svc_sock_names(char *buf, struct svc_serv *serv, char *toclose)
{
@@ -975,6 +980,7 @@ static struct svc_xprt svc_udp_xprt = {
.xpt_name = "udp",
.xpt_owner = THIS_MODULE,
.xpt_create_svc = svc_udp_create_svc,
+ .xpt_get_name = svc_sock_get_name,
.xpt_recvfrom = svc_udp_recvfrom,
.xpt_sendto = svc_udp_sendto,
.xpt_detach = svc_sock_detach,
@@ -1443,6 +1449,7 @@ static struct svc_xprt svc_tcp_xprt = {
.xpt_name = "tcp",
.xpt_owner = THIS_MODULE,
.xpt_create_svc = svc_tcp_create_svc,
+ .xpt_get_name = svc_sock_get_name,
.xpt_recvfrom = svc_tcp_recvfrom,
.xpt_sendto = svc_tcp_sendto,
.xpt_detach = svc_sock_detach,
More information about the general
mailing list