have to unlock object and page queues before sleeping
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Tue, 20 Jun 1995 02:42:54 +0000 (18:42 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Tue, 20 Jun 1995 02:42:54 +0000 (18:42 -0800)
SCCS-vsn: sys/vm/vm_pageout.c 8.7

usr/src/sys/vm/vm_pageout.c

index 32f0ca5..7a4c2cc 100644 (file)
@@ -7,7 +7,7 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)vm_pageout.c        8.6 (Berkeley) %G%
+ *     @(#)vm_pageout.c        8.7 (Berkeley) %G%
  *
  *
  * Copyright (c) 1987, 1990 Carnegie-Mellon University.
  *
  *
  * Copyright (c) 1987, 1990 Carnegie-Mellon University.
@@ -295,7 +295,11 @@ vm_pageout_page(m, object)
                 * shortage, so we put pause for awhile and try again.
                 * XXX could get stuck here.
                 */
                 * shortage, so we put pause for awhile and try again.
                 * XXX could get stuck here.
                 */
+               vm_page_unlock_queues();
+               vm_object_unlock(object);
                (void) tsleep((caddr_t)&lbolt, PZERO|PCATCH, "pageout", 0);
                (void) tsleep((caddr_t)&lbolt, PZERO|PCATCH, "pageout", 0);
+               vm_object_lock(object);
+               vm_page_lock_queues();
                break;
        }
        case VM_PAGER_FAIL:
                break;
        }
        case VM_PAGER_FAIL: