diff options
author | truckman <truckman@FreeBSD.org> | 2004-08-20 19:21:47 +0000 |
---|---|---|
committer | truckman <truckman@FreeBSD.org> | 2004-08-20 19:21:47 +0000 |
commit | 54d23a34f60fa406f7b0eebdfec259936c967881 (patch) | |
tree | 4b76caf86d67cd9525b2cc02facc1a91eaed237d | |
parent | 61ba3ee1cb4412c61a2c34f5ca0bdb4635a05dfe (diff) | |
download | FreeBSD-src-54d23a34f60fa406f7b0eebdfec259936c967881.zip FreeBSD-src-54d23a34f60fa406f7b0eebdfec259936c967881.tar.gz |
Don't attempt to trigger the syncer thread final sync code in the
shutdown_pre_sync state if the RB_NOSYNC flag is set. This is the
likely cause of hangs after a system panic that are keeping crash
dumps from being done.
This is a MFC candidate for RELENG_5.
MFC after: 3 days
-rw-r--r-- | sys/kern/vfs_subr.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 6f6c2a5..ad6d749 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -60,6 +60,7 @@ __FBSDID("$FreeBSD$"); #include <sys/malloc.h> #include <sys/mount.h> #include <sys/namei.h> +#include <sys/reboot.h> #include <sys/sleepqueue.h> #include <sys/stat.h> #include <sys/sysctl.h> @@ -1742,6 +1743,8 @@ syncer_shutdown(void *arg, int howto) { struct thread *td; + if (howto & RB_NOSYNC) + return; td = FIRST_THREAD_IN_PROC(updateproc); sleepq_remove(td, &lbolt); mtx_lock(&sync_mtx); |