summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_lkm.c
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1998-09-07 05:42:15 +0000
committerbde <bde@FreeBSD.org>1998-09-07 05:42:15 +0000
commit3adc4cd6e25dab239f15b3fe6de3b46000bb7a2d (patch)
tree792b71dd47c3a85736091def5feff20986cd9d79 /sys/kern/kern_lkm.c
parent73bcd2203955610546f0962d9d9cc627eb7b0d91 (diff)
downloadFreeBSD-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.c13
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);
}
/*
OpenPOWER on IntegriCloud