diff options
author | kib <kib@FreeBSD.org> | 2016-10-20 13:12:19 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2016-10-20 13:12:19 +0000 |
commit | d9cd623ce2b216efbe9a82496c50104a3af9a1fe (patch) | |
tree | 702295605705d5bda3b33bbef6c3de1730df9399 /sys/vm/vm_object.c | |
parent | d915f5215166a446e07cb0a85c4f05f5cfae3d32 (diff) | |
download | FreeBSD-src-d9cd623ce2b216efbe9a82496c50104a3af9a1fe.zip FreeBSD-src-d9cd623ce2b216efbe9a82496c50104a3af9a1fe.tar.gz |
MFC r307218:
Fix a race in vm_page_busy_sleep(9).
Diffstat (limited to 'sys/vm/vm_object.c')
-rw-r--r-- | sys/vm/vm_object.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index b2a7013..d4c7116 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -1182,7 +1182,7 @@ shadowlookup: if (object != tobject) VM_OBJECT_WUNLOCK(object); VM_OBJECT_WUNLOCK(tobject); - vm_page_busy_sleep(m, "madvpo"); + vm_page_busy_sleep(m, "madvpo", false); VM_OBJECT_WLOCK(object); goto relookup; } @@ -1361,7 +1361,7 @@ retry: VM_OBJECT_WUNLOCK(new_object); vm_page_lock(m); VM_OBJECT_WUNLOCK(orig_object); - vm_page_busy_sleep(m, "spltwt"); + vm_page_busy_sleep(m, "spltwt", false); VM_OBJECT_WLOCK(orig_object); VM_OBJECT_WLOCK(new_object); goto retry; @@ -1450,7 +1450,7 @@ vm_object_backing_scan_wait(vm_object_t object, vm_page_t p, vm_page_t next, if (p == NULL) VM_WAIT; else - vm_page_busy_sleep(p, "vmocol"); + vm_page_busy_sleep(p, "vmocol", false); VM_OBJECT_WLOCK(object); VM_OBJECT_WLOCK(backing_object); return (TAILQ_FIRST(&backing_object->memq)); @@ -1917,7 +1917,7 @@ again: vm_page_lock(p); if (vm_page_xbusied(p)) { VM_OBJECT_WUNLOCK(object); - vm_page_busy_sleep(p, "vmopax"); + vm_page_busy_sleep(p, "vmopax", true); VM_OBJECT_WLOCK(object); goto again; } @@ -1932,7 +1932,7 @@ again: } if (vm_page_busied(p)) { VM_OBJECT_WUNLOCK(object); - vm_page_busy_sleep(p, "vmopar"); + vm_page_busy_sleep(p, "vmopar", false); VM_OBJECT_WLOCK(object); goto again; } |