mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-30 16:51:41 +00:00
Avoid vm page queues lock leak after r238212.
Reported and tested by: Michael Butler <imb protected-networks net> Reviewed by: alc Pointy hat to: kib MFC after: 20 days
This commit is contained in:
parent
0aa31a3393
commit
a4156419ca
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=238258
@ -1030,7 +1030,6 @@ vm_pageout_scan(int pass)
|
||||
++pageout_lock_miss;
|
||||
if (object->flags & OBJ_MIGHTBEDIRTY)
|
||||
vnodes_skipped++;
|
||||
vm_page_lock_queues();
|
||||
goto unlock_and_continue;
|
||||
}
|
||||
KASSERT(mp != NULL,
|
||||
@ -1041,7 +1040,6 @@ vm_pageout_scan(int pass)
|
||||
if (vget(vp, LK_EXCLUSIVE | LK_TIMELOCK,
|
||||
curthread)) {
|
||||
VM_OBJECT_LOCK(object);
|
||||
vm_page_lock_queues();
|
||||
++pageout_lock_miss;
|
||||
if (object->flags & OBJ_MIGHTBEDIRTY)
|
||||
vnodes_skipped++;
|
||||
@ -1083,14 +1081,14 @@ vm_pageout_scan(int pass)
|
||||
* be undergoing I/O, so skip it
|
||||
*/
|
||||
if (m->hold_count) {
|
||||
vm_page_lock_queues();
|
||||
queues_locked = TRUE;
|
||||
vm_page_unlock(m);
|
||||
vm_page_requeue(m);
|
||||
if (object->flags & OBJ_MIGHTBEDIRTY)
|
||||
vnodes_skipped++;
|
||||
goto unlock_and_continue;
|
||||
}
|
||||
vm_page_unlock_queues();
|
||||
queues_locked = FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user