diff options
author | luoqi <luoqi@FreeBSD.org> | 2000-01-07 08:36:44 +0000 |
---|---|---|
committer | luoqi <luoqi@FreeBSD.org> | 2000-01-07 08:36:44 +0000 |
commit | e100d44d5538cc21abeba58f459ce9eb497651a9 (patch) | |
tree | ca8740d97497e39a1d8bb5f7f15e17f85fa4c506 /sys/kern/vfs_export.c | |
parent | e69b1ea5c9a5104ae1afe7dd26c89222983ed04e (diff) | |
download | FreeBSD-src-e100d44d5538cc21abeba58f459ce9eb497651a9.zip FreeBSD-src-e100d44d5538cc21abeba58f459ce9eb497651a9.tar.gz |
Introduce a mechanism to suspend/resume system processes. Suspend syncer
and bufdaemon prior to disk sync during system shutdown.
Diffstat (limited to 'sys/kern/vfs_export.c')
-rw-r--r-- | sys/kern/vfs_export.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c index 059ca2a..f59d819 100644 --- a/sys/kern/vfs_export.c +++ b/sys/kern/vfs_export.c @@ -46,20 +46,23 @@ #include <sys/param.h> #include <sys/systm.h> +#include <sys/buf.h> +#include <sys/conf.h> +#include <sys/dirent.h> +#include <sys/domain.h> +#include <sys/eventhandler.h> #include <sys/fcntl.h> #include <sys/kernel.h> -#include <sys/proc.h> #include <sys/kthread.h> #include <sys/malloc.h> #include <sys/mount.h> +#include <sys/proc.h> +#include <sys/reboot.h> #include <sys/socket.h> -#include <sys/vnode.h> #include <sys/stat.h> -#include <sys/buf.h> -#include <sys/domain.h> -#include <sys/dirent.h> +#include <sys/sysctl.h> #include <sys/vmmeter.h> -#include <sys/conf.h> +#include <sys/vnode.h> #include <machine/limits.h> @@ -72,7 +75,6 @@ #include <vm/vm_pager.h> #include <vm/vnode_pager.h> #include <vm/vm_zone.h> -#include <sys/sysctl.h> static MALLOC_DEFINE(M_NETADDR, "Export Host", "Export host address structure"); @@ -975,9 +977,14 @@ sched_sync(void) int s; struct proc *p = updateproc; + EVENTHANDLER_REGISTER(shutdown_pre_sync, shutdown_kproc, p, + SHUTDOWN_PRI_LAST); + p->p_flag |= P_BUFEXHAUST; for (;;) { + kproc_suspend_loop(p); + starttime = time_second; /* |