diff options
author | John Dyson <dyson@FreeBSD.org> | 1996-05-21 05:26:27 +0000 |
---|---|---|
committer | John Dyson <dyson@FreeBSD.org> | 1996-05-21 05:26:27 +0000 |
commit | 07c647c528f962d5b77a74c9f8539ebfa038fdee (patch) | |
tree | cbcaa1c5cdb768da9f77c6c66fd7206c552d499f /sys/vm/vm_object.c | |
parent | bccfba5f4c3750624cfbf1f90291f581438b6e18 (diff) | |
download | src-07c647c528f962d5b77a74c9f8539ebfa038fdee.tar.gz src-07c647c528f962d5b77a74c9f8539ebfa038fdee.zip |
Don't protect non-managed pages off during object rundown. This fixes
a hang that occurs under certain circumstances when exiting X.
Notes
Notes:
svn path=/head/; revision=15836
Diffstat (limited to 'sys/vm/vm_object.c')
-rw-r--r-- | sys/vm/vm_object.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index d3720d9c6f03..a375a9de7a7e 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -61,7 +61,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $Id: vm_object.c,v 1.69 1996/05/18 03:37:55 dyson Exp $ + * $Id: vm_object.c,v 1.70 1996/05/19 07:36:50 dyson Exp $ */ /* @@ -407,7 +407,8 @@ vm_object_terminate(object) while ((p = TAILQ_FIRST(&object->memq)) != NULL) { if (p->flags & PG_BUSY) printf("vm_object_terminate: freeing busy page\n"); - vm_page_protect(p, VM_PROT_NONE); + if ((p->flags & PG_FICTITIOUS) == 0) + vm_page_protect(p, VM_PROT_NONE); PAGE_WAKEUP(p); vm_page_free(p); cnt.v_pfree++; |