1
0
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:
Konstantin Belousov 2012-07-08 18:04:26 +00:00
parent 0aa31a3393
commit a4156419ca
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=238258

View File

@ -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;
}
/*