On Dec 14, 11:19am, "Christos Zoulas" wrote: } Subject: CVS commit: src/sys/nfs } This is a multi-part message in MIME format. } } --_----------=_138703796849810 } Content-Disposition: inline } Content-Transfer-Encoding: 8bit } Content-Type: text/plain; charset="US-ASCII" } } Module Name: src } Committed By: christos } Date: Sat Dec 14 16:19:28 UTC 2013 } } Modified Files: } src/sys/nfs: nfs_export.c nfs_serv.c nfs_var.h } } Log Message: } don't allow the nfs server module to unload if it has exported filesystems. } } } To generate a diff of this commit: } cvs rdiff -u -r1.57 -r1.58 src/sys/nfs/nfs_export.c } cvs rdiff -u -r1.166 -r1.167 src/sys/nfs/nfs_serv.c } cvs rdiff -u -r1.90 -r1.91 src/sys/nfs/nfs_var.h } } Please note that diffs are not public domain; they are subject to the } copyright notices on the relevant files. } } } --_----------=_138703796849810 } Content-Disposition: inline } Content-Transfer-Encoding: 8bit } Content-Type: text/x-diff; charset=us-ascii } } Modified files: } } Index: src/sys/nfs/nfs_export.c } diff -u src/sys/nfs/nfs_export.c:1.57 src/sys/nfs/nfs_export.c:1.58 } --- src/sys/nfs/nfs_export.c:1.57 Sat Nov 23 09:20:46 2013 } +++ src/sys/nfs/nfs_export.c Sat Dec 14 11:19:28 2013 } @@ -1,4 +1,4 @@ } -/* $NetBSD: nfs_export.c,v 1.57 2013/11/23 14:20:46 christos Exp $ */ } +/* $NetBSD: nfs_export.c,v 1.58 2013/12/14 16:19:28 christos Exp $ */ } } /*- } * Copyright (c) 1997, 1998, 2004, 2005, 2008 The NetBSD Foundation, Inc. } @@ -77,7 +77,7 @@ } */ } } #include <sys/cdefs.h> } -__KERNEL_RCSID(0, "$NetBSD: nfs_export.c,v 1.57 2013/11/23 14:20:46 christos Exp $"); } +__KERNEL_RCSID(0, "$NetBSD: nfs_export.c,v 1.58 2013/12/14 16:19:28 christos Exp $"); } } #include <sys/param.h> } #include <sys/systm.h> } @@ -877,3 +877,10 @@ netexport_wrunlock(void) } } rw_exit(&netexport_lock); } } } + } +bool } +netexport_hasexports(void) } +{ } + } + return nfs_pub.np_valid || !TAILQ_EMPTY(&netexport_list); } +} } } Index: src/sys/nfs/nfs_serv.c } diff -u src/sys/nfs/nfs_serv.c:1.166 src/sys/nfs/nfs_serv.c:1.167 } --- src/sys/nfs/nfs_serv.c:1.166 Sat Sep 14 18:29:08 2013 } +++ src/sys/nfs/nfs_serv.c Sat Dec 14 11:19:28 2013 } @@ -1,4 +1,4 @@ } -/* $NetBSD: nfs_serv.c,v 1.166 2013/09/14 22:29:08 martin Exp $ */ } +/* $NetBSD: nfs_serv.c,v 1.167 2013/12/14 16:19:28 christos Exp $ */ } } /* } * Copyright (c) 1989, 1993 } @@ -55,7 +55,7 @@ } */ } } #include <sys/cdefs.h> } -__KERNEL_RCSID(0, "$NetBSD: nfs_serv.c,v 1.166 2013/09/14 22:29:08 martin Exp $"); } +__KERNEL_RCSID(0, "$NetBSD: nfs_serv.c,v 1.167 2013/12/14 16:19:28 christos Exp $"); } } #include <sys/param.h> } #include <sys/systm.h> } @@ -125,6 +125,8 @@ nfsserver_modcmd(modcmd_t cmd, void *arg } nfs_timer_srvinit(nfsrv_timer); } return 0; } case MODULE_CMD_FINI: } + if (netexport_hasexports()) } + return EBUSY;
I thought the idea was only to disallow autounload when there were exports? This change will also disallow manual unloading. } error = syscall_disestablish(NULL, nfsserver_syscalls); } if (error != 0) { } return error; } } Index: src/sys/nfs/nfs_var.h } diff -u src/sys/nfs/nfs_var.h:1.90 src/sys/nfs/nfs_var.h:1.91 } --- src/sys/nfs/nfs_var.h:1.90 Tue Mar 2 18:19:09 2010 } +++ src/sys/nfs/nfs_var.h Sat Dec 14 11:19:28 2013 } @@ -1,4 +1,4 @@ } -/* $NetBSD: nfs_var.h,v 1.90 2010/03/02 23:19:09 pooka Exp $ */ } +/* $NetBSD: nfs_var.h,v 1.91 2013/12/14 16:19:28 christos Exp $ */ } } /*- } * Copyright (c) 1996 The NetBSD Foundation, Inc. } @@ -349,4 +349,5 @@ void netexport_rdlock(void); } void netexport_rdunlock(void); } void netexport_init(void); } void netexport_fini(void); } +bool netexport_hasexports(void); } #endif /* _KERNEL */ } } } --_----------=_138703796849810-- } }-- End of excerpt from "Christos Zoulas"