diff --git a/sys/ufs/mfs/mfs_vfsops.c b/sys/ufs/mfs/mfs_vfsops.c index 2bbacd911ab8..9e470f03c4a2 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.55 1999/01/21 09:24:46 dillon Exp $ + * $Id: mfs_vfsops.c,v 1.56 1999/01/28 00:57:54 dillon Exp $ */ @@ -396,13 +396,13 @@ mfs_start(mp, flags, p) register int gotsig = 0; /* - * 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. + * We must set P_NOSWAP to prevent the system from trying to swap + * out or kill ( when swap space is low, see vm/pageout.c ) the + * process. A deadlock can occur if the process is swapped out, + * and the system can loop trying to kill the unkillable ( while + * references exist ) MFS process when swap space is low. */ - curproc->p_flag |= P_SYSTEM; + curproc->p_flag |= P_NOSWAP; while (mfsp->mfs_active) { int s; diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c index 5f1b56da617d..8a1ffcce6613 100644 --- a/sys/vm/vm_pageout.c +++ b/sys/vm/vm_pageout.c @@ -65,7 +65,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $Id: vm_pageout.c,v 1.136 1999/02/08 00:37:36 dillon Exp $ + * $Id: vm_pageout.c,v 1.138 1999/02/19 19:14:48 luoqi Exp $ */ /* @@ -1144,7 +1144,7 @@ rescan0: /* * if this is a system process, skip it */ - if ((p->p_flag & P_SYSTEM) || (p->p_pid == 1) || + if ((p->p_flag & (P_SYSTEM|P_NOSWAP)) || (p->p_pid == 1) || ((p->p_pid < 48) && (vm_swap_size != 0))) { continue; }