Override the default VFS LKM dispatch functions so that a module

unload function can be provided (this is necessary to unregister
the at_exit handler).
This commit is contained in:
Alexander Langer 1998-07-25 15:52:44 +00:00
parent 38bfd69bda
commit ca2be56ff9
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=37864
4 changed files with 42 additions and 12 deletions

View File

@ -1,4 +1,4 @@
# $Id: Makefile,v 1.9 1998/06/30 16:09:28 sos Exp $
# $Id: Makefile,v 1.10 1998/07/01 17:02:57 bde Exp $
.PATH: ${.CURDIR}/../../sys/miscfs/procfs
KMOD= procfs_mod
@ -6,7 +6,7 @@ SRCS= opt_vmpage.h procfs_ctl.c procfs_map.c procfs_note.c procfs_status.c \
procfs_subr.c procfs_type.c procfs_vfsops.c procfs_vnops.c
NOMAN=
VFS_LKM=
CFLAGS+= -DPROCFS
CFLAGS+= -DPROCFS -DVFS_LKM_NO_DEFAULT_DISPATCH
CLEANFILES+= opt_vmpage.h
opt_vmpage.h:

View File

@ -36,7 +36,7 @@
*
* @(#)procfs_vfsops.c 8.7 (Berkeley) 5/10/95
*
* $Id: procfs_vfsops.c,v 1.21 1998/05/06 05:29:36 msmith Exp $
* $Id: procfs_vfsops.c,v 1.22 1998/06/07 17:11:58 dfr Exp $
*/
/*
@ -174,9 +174,7 @@ procfs_init(vfsp)
struct vfsconf *vfsp;
{
int error;
/*
* XXX - this should be rm_at_exit'd in an LKM unload function,
*/
if (error = at_exit(procfs_exit))
printf("procfs: cannot register procfs_exit with at_exit -- error %d\n", error);
@ -210,3 +208,20 @@ static struct vfsops procfs_vfsops = {
};
VFS_SET(procfs_vfsops, procfs, MOUNT_PROCFS, VFCF_SYNTHETIC);
#ifdef VFS_LKM
static int
procfs_unload ()
{
rm_at_exit(procfs_exit);
return(0);
}
int
procfs_mod(struct lkm_table *lkmtp, int cmd, int ver)
{
MOD_DISPATCH(procfs, lkmtp, cmd, ver, lkm_nullcmd,
procfs_unload, lkm_nullcmd);
}
#endif

View File

@ -36,7 +36,7 @@
*
* @(#)procfs_vfsops.c 8.7 (Berkeley) 5/10/95
*
* $Id: procfs_vfsops.c,v 1.21 1998/05/06 05:29:36 msmith Exp $
* $Id: procfs_vfsops.c,v 1.22 1998/06/07 17:11:58 dfr Exp $
*/
/*
@ -174,9 +174,7 @@ procfs_init(vfsp)
struct vfsconf *vfsp;
{
int error;
/*
* XXX - this should be rm_at_exit'd in an LKM unload function,
*/
if (error = at_exit(procfs_exit))
printf("procfs: cannot register procfs_exit with at_exit -- error %d\n", error);
@ -210,3 +208,20 @@ static struct vfsops procfs_vfsops = {
};
VFS_SET(procfs_vfsops, procfs, MOUNT_PROCFS, VFCF_SYNTHETIC);
#ifdef VFS_LKM
static int
procfs_unload ()
{
rm_at_exit(procfs_exit);
return(0);
}
int
procfs_mod(struct lkm_table *lkmtp, int cmd, int ver)
{
MOD_DISPATCH(procfs, lkmtp, cmd, ver, lkm_nullcmd,
procfs_unload, lkm_nullcmd);
}
#endif

View File

@ -1,4 +1,4 @@
# $Id: Makefile,v 1.9 1998/06/30 16:09:28 sos Exp $
# $Id: Makefile,v 1.10 1998/07/01 17:02:57 bde Exp $
.PATH: ${.CURDIR}/../../sys/miscfs/procfs
KMOD= procfs_mod
@ -6,7 +6,7 @@ SRCS= opt_vmpage.h procfs_ctl.c procfs_map.c procfs_note.c procfs_status.c \
procfs_subr.c procfs_type.c procfs_vfsops.c procfs_vnops.c
NOMAN=
VFS_LKM=
CFLAGS+= -DPROCFS
CFLAGS+= -DPROCFS -DVFS_LKM_NO_DEFAULT_DISPATCH
CLEANFILES+= opt_vmpage.h
opt_vmpage.h: