summaryrefslogtreecommitdiffstats
path: root/utils/nfsd/nfsd.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2014-03-08 10:40:07 -0500
committerSteve Dickson <steved@redhat.com>2014-03-11 12:03:05 -0400
commite54de2940d020e6ac53a5840b6e427bac986ca62 (patch)
tree43065d3e0e07b8827def2d1193235638aaf0dad2 /utils/nfsd/nfsd.c
parent5be4b2d7786d3eaee9e11c3bc4cdbfa451006947 (diff)
downloadnfs-utils-e54de2940d020e6ac53a5840b6e427bac986ca62.tar.gz
nfs-utils-e54de2940d020e6ac53a5840b6e427bac986ca62.tar.xz
nfs-utils-e54de2940d020e6ac53a5840b6e427bac986ca62.zip
nfsd: add -r and --rdma options to request rdma service
As nfsd establishes UDP and TCP ports, it should establish RDMA too. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'utils/nfsd/nfsd.c')
-rw-r--r--utils/nfsd/nfsd.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
index edeb621..d6a413d 100644
--- a/utils/nfsd/nfsd.c
+++ b/utils/nfsd/nfsd.c
@@ -45,6 +45,7 @@ static struct option longopts[] =
{ "port", 1, 0, 'p' },
{ "debug", 0, 0, 'd' },
{ "syslog", 0, 0, 's' },
+ { "rdma", 2, 0, 'R' },
{ NULL, 0, 0, 0 }
};
@@ -96,7 +97,7 @@ int
main(int argc, char **argv)
{
int count = NFSD_NPROC, c, error = 0, portnum = 0, fd, found_one;
- char *p, *progname, *port;
+ char *p, *progname, *port, *rdma_port = NULL;
char *haddr = NULL;
int socket_up = 0;
unsigned int minorvers = 0;
@@ -121,7 +122,7 @@ main(int argc, char **argv)
xlog_syslog(0);
xlog_stderr(1);
- while ((c = getopt_long(argc, argv, "dH:hN:V:p:P:sTU", longopts, NULL)) != EOF) {
+ while ((c = getopt_long(argc, argv, "dH:hN:V:p:P:sTUr", longopts, NULL)) != EOF) {
switch(c) {
case 'd':
xlog_config(D_ALL, 1);
@@ -156,6 +157,16 @@ main(int argc, char **argv)
exit(1);
}
break;
+ case 'r':
+ rdma_port = "nfsrdma";
+ break;
+ case 'R': /* --rdma */
+ if (optarg)
+ rdma_port = optarg;
+ else
+ rdma_port = "nfsrdma";
+ break;
+
case 'N':
switch((c = strtol(optarg, &p, 0))) {
case 4:
@@ -296,7 +307,11 @@ main(int argc, char **argv)
if (!error)
socket_up = 1;
#endif /* IPV6_SUPPORTED */
-
+ if (rdma_port) {
+ error = nfssvc_set_rdmaport(rdma_port);
+ if (!error)
+ socket_up = 1;
+ }
set_threads:
/* don't start any threads if unable to hand off any sockets */
if (!socket_up) {
@@ -337,7 +352,7 @@ static void
usage(const char *prog)
{
fprintf(stderr, "Usage:\n"
- "%s [-d|--debug] [-H hostname] [-p|-P|--port port] [-N|--no-nfs-version version] [-V|--nfs-version version] [-s|--syslog] [-T|--no-tcp] [-U|--no-udp] nrservs\n",
+ "%s [-d|--debug] [-H hostname] [-p|-P|--port port] [-N|--no-nfs-version version] [-V|--nfs-version version] [-s|--syslog] [-T|--no-tcp] [-U|--no-udp] [-r|--rdma=] nrservs\n",
prog);
exit(2);
}