diff options
author | sam <sam@FreeBSD.org> | 2008-04-08 17:53:33 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2008-04-08 17:53:33 +0000 |
commit | 7979f5eff2d34bce4b109e6b3468d2150de74b5e (patch) | |
tree | 5712f7dece3e31ef855f9e76e52ec97e3fd5d9ad | |
parent | 2601660586868b1346b15e1dd88a76412cf3197e (diff) | |
download | FreeBSD-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.c | 2 | ||||
-rw-r--r-- | sys/sys/eventhandler.h | 4 | ||||
-rw-r--r-- | sys/sys/kernel.h | 1 |
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 */ |