summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2008-04-08 17:53:33 +0000
committersam <sam@FreeBSD.org>2008-04-08 17:53:33 +0000
commit7979f5eff2d34bce4b109e6b3468d2150de74b5e (patch)
tree5712f7dece3e31ef855f9e76e52ec97e3fd5d9ad
parent2601660586868b1346b15e1dd88a76412cf3197e (diff)
downloadFreeBSD-src-7979f5eff2d34bce4b109e6b3468d2150de74b5e.zip
FreeBSD-src-7979f5eff2d34bce4b109e6b3468d2150de74b5e.tar.gz
o add a mountroot event handler that fires when / is mounted; this information
was lost when root started being mounted by init o remove SI_SUB_MOUNT_ROOT since it's no longer meaningful MFC after: 2 weeks
-rw-r--r--sys/kern/vfs_mount.c2
-rw-r--r--sys/sys/eventhandler.h4
-rw-r--r--sys/sys/kernel.h1
3 files changed, 6 insertions, 1 deletions
diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c
index 5061f2a..cfaec35 100644
--- a/sys/kern/vfs_mount.c
+++ b/sys/kern/vfs_mount.c
@@ -1488,6 +1488,8 @@ set_rootvnode(struct thread *td)
FILEDESC_SUNLOCK(p->p_fd);
VOP_UNLOCK(rootvnode, 0);
+
+ EVENTHANDLER_INVOKE(mountroot);
}
/*
diff --git a/sys/sys/eventhandler.h b/sys/sys/eventhandler.h
index 7c1e001..f75b51e 100644
--- a/sys/sys/eventhandler.h
+++ b/sys/sys/eventhandler.h
@@ -171,6 +171,10 @@ EVENTHANDLER_DECLARE(vm_lowmem, vm_lowmem_handler_t);
typedef void (*vfs_lowvnodes_handler_t)(void *, int);
EVENTHANDLER_DECLARE(vfs_lowvnodes, vfs_lowvnodes_handler_t);
+/* Root mounted event */
+typedef void (*mountroot_handler_t)(void *);
+EVENTHANDLER_DECLARE(mountroot, mountroot_handler_t);
+
/*
* Process events
* process_fork and exit handlers are called without Giant.
diff --git a/sys/sys/kernel.h b/sys/sys/kernel.h
index 9c7f6ae..a1d5635 100644
--- a/sys/sys/kernel.h
+++ b/sys/sys/kernel.h
@@ -153,7 +153,6 @@ enum sysinit_sub_id {
SI_SUB_ROOT_CONF = 0xb000000, /* Find root devices */
SI_SUB_DUMP_CONF = 0xb200000, /* Find dump devices */
SI_SUB_RAID = 0xb380000, /* Configure GEOM classes */
- SI_SUB_MOUNT_ROOT = 0xb400000, /* root mount*/
SI_SUB_SWAP = 0xc000000, /* swap */
SI_SUB_INTRINSIC_POST = 0xd000000, /* proc 0 cleanup*/
SI_SUB_SYSCALLS = 0xd800000, /* register system calls */
OpenPOWER on IntegriCloud