diff options
author | bde <bde@FreeBSD.org> | 1998-09-07 05:42:15 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1998-09-07 05:42:15 +0000 |
commit | 3adc4cd6e25dab239f15b3fe6de3b46000bb7a2d (patch) | |
tree | 792b71dd47c3a85736091def5feff20986cd9d79 /sys/kern/kern_lkm.c | |
parent | 73bcd2203955610546f0962d9d9cc627eb7b0d91 (diff) | |
download | FreeBSD-src-3adc4cd6e25dab239f15b3fe6de3b46000bb7a2d.zip FreeBSD-src-3adc4cd6e25dab239f15b3fe6de3b46000bb7a2d.tar.gz |
Made unloading of the nfs LKM sort of work. This is mainly to test
detachment of vfs sysctls. Unloading of vfs LKMs doesn't actually
work for any vfs, since it leaves garbage pointers to memory
allocation control structures.
Diffstat (limited to 'sys/kern/kern_lkm.c')
-rw-r--r-- | sys/kern/kern_lkm.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/sys/kern/kern_lkm.c b/sys/kern/kern_lkm.c index dcbf70e..9061180 100644 --- a/sys/kern/kern_lkm.c +++ b/sys/kern/kern_lkm.c @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: kern_lkm.c,v 1.54 1998/08/15 22:42:20 bde Exp $ + * $Id: kern_lkm.c,v 1.55 1998/09/05 17:13:27 bde Exp $ */ #include "opt_devfs.h" @@ -615,8 +615,7 @@ _lkm_vfs(lkmtp, cmd) struct sysctl_oid **oidpp; struct vfsconf *vfc = args->lkm_vfsconf; struct vfsconf *vfsp, *prev_vfsp; - int i, maxtypenum; - int err = 0; + int error, i, maxtypenum; switch(cmd) { case LKM_E_LOAD: @@ -683,6 +682,12 @@ _lkm_vfs(lkmtp, cmd) return EBUSY; } + if (vfc->vfc_vfsops->vfs_uninit != NULL) { + error = (*vfc->vfc_vfsops->vfs_uninit)(vfsp); + if (error) + return (error); + } + prev_vfsp->vfc_next = vfsp->vfc_next; if (vfsp->vfc_vfsops->vfs_oid != NULL) { @@ -712,7 +717,7 @@ _lkm_vfs(lkmtp, cmd) case LKM_E_STAT: /* no special handling... */ break; } - return(err); + return (0); } /* |