Drop Giant before sleeping on a busy page.
Before the page busy code was converted to make direct use of sleepqueues, this was handled by _sleep(). Reported by: glebius Reviewed by: kib Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
429badc36a
commit
0151d2df1f
@ -1053,8 +1053,10 @@ _vm_page_busy_sleep(vm_object_t obj, vm_page_t m, const char *wmesg,
|
||||
}
|
||||
if (locked)
|
||||
VM_OBJECT_DROP(obj);
|
||||
DROP_GIANT();
|
||||
sleepq_add(m, NULL, wmesg, 0, 0);
|
||||
sleepq_wait(m, PVM);
|
||||
PICKUP_GIANT();
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user