Hold the page queues lock around vm_page_unhold() in vunmapbuf().

Approved by:	re (blanket)
This commit is contained in:
Alan Cox
2002-12-02 01:12:05 +00:00
parent a5bf4e71ef
commit 8e7ea1fc7d
2 changed files with 4 additions and 0 deletions
+2
View File
@@ -393,6 +393,7 @@ vunmapbuf(bp)
if ((bp->b_flags & B_PHYS) == 0)
panic("vunmapbuf");
vm_page_lock_queues();
for (addr = (caddr_t)trunc_page(bp->b_data);
addr < bp->b_data + bp->b_bufsize;
addr += PAGE_SIZE) {
@@ -400,6 +401,7 @@ vunmapbuf(bp)
pmap_kremove((vm_offset_t) addr);
vm_page_unhold(PHYS_TO_VM_PAGE(pa));
}
vm_page_unlock_queues();
bp->b_data = bp->b_saveaddr;
}
+2
View File
@@ -406,6 +406,7 @@ vunmapbuf(bp)
if ((bp->b_flags & B_PHYS) == 0)
panic("vunmapbuf");
vm_page_lock_queues();
for (addr = (caddr_t)trunc_page(bp->b_data);
addr < bp->b_data + bp->b_bufsize;
addr += PAGE_SIZE) {
@@ -413,6 +414,7 @@ vunmapbuf(bp)
pmap_kremove((vm_offset_t) addr);
vm_page_unhold(PHYS_TO_VM_PAGE(pa));
}
vm_page_unlock_queues();
bp->b_data = bp->b_saveaddr;
}