summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sbin/nfsd/nfsd.c13
-rw-r--r--usr.sbin/nfsd/nfsd.c13
2 files changed, 8 insertions, 18 deletions
diff --git a/sbin/nfsd/nfsd.c b/sbin/nfsd/nfsd.c
index eadaf8d..a00dc88 100644
--- a/sbin/nfsd/nfsd.c
+++ b/sbin/nfsd/nfsd.c
@@ -132,18 +132,13 @@ main(argc, argv, envp)
int bindhostc = 0, bindanyflag, rpcbreg, rpcbregcnt;
char **bindhost = NULL;
pid_t pid;
- struct vfsconf vfc;
int error;
- error = getvfsbyname("nfs", &vfc);
- if (error && vfsisloadable("nfs")) {
- if (vfsload("nfs"))
- err(1, "vfsload(nfs)");
- endvfsent(); /* flush cache */
- error = getvfsbyname("nfs", &vfc);
+ if (modfind("nfsserver") < 0) {
+ /* Not present in kernel, try loading it */
+ if (kldload("nfsserver") < 0 || modfind("nfsserver") < 0)
+ errx(1, "NFS serveris not available");
}
- if (error)
- errx(1, "NFS is not available in the running kernel");
nfsdcnt = DEFNFSDCNT;
unregister = reregister = tcpflag = 0;
diff --git a/usr.sbin/nfsd/nfsd.c b/usr.sbin/nfsd/nfsd.c
index eadaf8d..a00dc88 100644
--- a/usr.sbin/nfsd/nfsd.c
+++ b/usr.sbin/nfsd/nfsd.c
@@ -132,18 +132,13 @@ main(argc, argv, envp)
int bindhostc = 0, bindanyflag, rpcbreg, rpcbregcnt;
char **bindhost = NULL;
pid_t pid;
- struct vfsconf vfc;
int error;
- error = getvfsbyname("nfs", &vfc);
- if (error && vfsisloadable("nfs")) {
- if (vfsload("nfs"))
- err(1, "vfsload(nfs)");
- endvfsent(); /* flush cache */
- error = getvfsbyname("nfs", &vfc);
+ if (modfind("nfsserver") < 0) {
+ /* Not present in kernel, try loading it */
+ if (kldload("nfsserver") < 0 || modfind("nfsserver") < 0)
+ errx(1, "NFS serveris not available");
}
- if (error)
- errx(1, "NFS is not available in the running kernel");
nfsdcnt = DEFNFSDCNT;
unregister = reregister = tcpflag = 0;
OpenPOWER on IntegriCloud