summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortruckman <truckman@FreeBSD.org>2004-08-20 19:21:47 +0000
committertruckman <truckman@FreeBSD.org>2004-08-20 19:21:47 +0000
commit54d23a34f60fa406f7b0eebdfec259936c967881 (patch)
tree4b76caf86d67cd9525b2cc02facc1a91eaed237d
parent61ba3ee1cb4412c61a2c34f5ca0bdb4635a05dfe (diff)
downloadFreeBSD-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.c3
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);
OpenPOWER on IntegriCloud