Please try the attached patch.

Alan
Index: vm/vm_object.c
===================================================================
RCS file: /home/ncvs/src/sys/vm/vm_object.c,v
retrieving revision 1.158
diff -c -r1.158 vm_object.c
*** vm_object.c 1999/07/01 19:53:42     1.158
--- vm_object.c 1999/07/10 06:02:51
***************
*** 400,413 ****
        int s;
  
        /*
!        * Make sure no one uses us.
         */
        vm_object_set_flag(object, OBJ_DEAD);
! 
!       /*
!        * wait for the pageout daemon to be done with the object
!        */
!       vm_object_pip_wait(object, "objtrm");
  
        KASSERT(!object->paging_in_progress,
                ("vm_object_terminate: pageout in progress"));
--- 400,415 ----
        int s;
  
        /*
!        * Atomically wait for the pageout daemon to release the object
!        * and mark the object dead.
         */
+       s = splvm();
+       while (object->paging_in_progress) {
+               vm_object_set_flag(object, OBJ_PIPWNT);
+               tsleep(object, PVM, "objtrm", 0);
+       }
        vm_object_set_flag(object, OBJ_DEAD);
!       splx(s);
  
        KASSERT(!object->paging_in_progress,
                ("vm_object_terminate: pageout in progress"));

Reply via email to