diff options
-rw-r--r-- | sys/ufs/mfs/mfs_vfsops.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/ufs/mfs/mfs_vfsops.c b/sys/ufs/mfs/mfs_vfsops.c index fa4ffc3..1ea0804 100644 --- a/sys/ufs/mfs/mfs_vfsops.c +++ b/sys/ufs/mfs/mfs_vfsops.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)mfs_vfsops.c 8.11 (Berkeley) 6/19/95 - * $Id: mfs_vfsops.c,v 1.51 1998/10/12 09:02:19 peter Exp $ + * $Id: mfs_vfsops.c,v 1.52 1998/12/07 21:58:49 archie Exp $ */ @@ -391,6 +391,16 @@ mfs_start(mp, flags, p) register int gotsig = 0; base = mfsp->mfs_baseoff; + + /* + * Must set P_SYSTEM to prevent system from trying to kill + * this process. What happens is that the process is unkillable, + * and the swapper loops trying to continuously kill it. Nor + * can we swap out this process - not unless you want a deadlock, + * anyway. + */ + curproc->p_flag |= P_SYSTEM; + while (mfsp->mfs_active) { while (bp = bufq_first(&mfsp->buf_queue)) { bufq_remove(&mfsp->buf_queue, bp); |