aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2007-02-12 03:53:29 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-12 12:48:35 -0500
commit482fb94e1b0c2efe8258334aa2a68d4f4a91de9c (patch)
tree84353b34bb5ea02df98b598fff037cf1da20d6b0 /net/sunrpc
parent6b174337e5126de834a971d3edc3681bbfa45e2c (diff)
[PATCH] knfsd: SUNRPC: allow creating an RPC service without registering with portmapper
Sometimes we need to create an RPC service but not register it with the local portmapper. NFSv4 delegation callback, for example. Change the svc_makesock() API to allow optionally creating temporary or permanent sockets, optionally registering with the local portmapper, and make it return the ephemeral port of the new socket. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Cc: Aurelien Charbon <aurelien.charbon@ext.bull.net> Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'net/sunrpc')
-rw-r--r--net/sunrpc/svcsock.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index 27ba34a152ec..d120fadeb1ae 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -1689,9 +1689,11 @@ void svc_close_socket(struct svc_sock *svsk)
1689 * @serv: RPC server structure 1689 * @serv: RPC server structure
1690 * @protocol: transport protocol to use 1690 * @protocol: transport protocol to use
1691 * @port: port to use 1691 * @port: port to use
1692 * @flags: requested socket characteristics
1692 * 1693 *
1693 */ 1694 */
1694int svc_makesock(struct svc_serv *serv, int protocol, unsigned short port) 1695int svc_makesock(struct svc_serv *serv, int protocol, unsigned short port,
1696 int flags)
1695{ 1697{
1696 struct sockaddr_in sin = { 1698 struct sockaddr_in sin = {
1697 .sin_family = AF_INET, 1699 .sin_family = AF_INET,
@@ -1700,7 +1702,7 @@ int svc_makesock(struct svc_serv *serv, int protocol, unsigned short port)
1700 }; 1702 };
1701 1703
1702 dprintk("svc: creating socket proto = %d\n", protocol); 1704 dprintk("svc: creating socket proto = %d\n", protocol);
1703 return svc_create_socket(serv, protocol, &sin, SVC_SOCK_DEFAULTS); 1705 return svc_create_socket(serv, protocol, &sin, flags);
1704} 1706}
1705 1707
1706/* 1708/*