summaryrefslogtreecommitdiffstats
path: root/support/nfs
diff options
context:
space:
mode:
Diffstat (limited to 'support/nfs')
-rw-r--r--support/nfs/nfssvc.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/support/nfs/nfssvc.c b/support/nfs/nfssvc.c
index 7419baf..dae16f7 100644
--- a/support/nfs/nfssvc.c
+++ b/support/nfs/nfssvc.c
@@ -8,12 +8,33 @@
#include "config.h"
+#include <unistd.h>
+#include <fcntl.h>
+
#include "nfslib.h"
int
nfssvc(int port, int nrservs)
{
struct nfsctl_arg arg;
+ int fd;
+
+ fd = open("/proc/fs/nfs/threads", O_WRONLY);
+ if (fd >= 0) {
+ /* 2.5+ kernel with nfsd filesystem mounted.
+ * Just write the number in.
+ * Cannot handle port number yet, but does anyone care?
+ */
+ char buf[20];
+ int n;
+ snprintf(buf, 20,"%d\n", nrservs);
+ n = write(fd, buf, strlen(buf));
+ close(fd);
+ if (n != strlen(buf))
+ return -1;
+ else
+ return 0;
+ }
arg.ca_version = NFSCTL_VERSION;
arg.ca_svc.svc_nthreads = nrservs;