Fix-up r254141: in the process of making a failing vm_page_rename()

a call of pager_swap_freespace() was moved around, now leading to freeing
the incorrect page because of the pindex changes after vm_page_rename().

Get back to use the correct pindex when destroying the swap space.

Sponsored by:	EMC / Isilon storage division
Reported by:	avg
Tested by:	pho
MFC after:	7 days
This commit is contained in:
Attilio Rao 2014-02-14 03:34:12 +00:00
parent a999ce6abf
commit 14a5dc1780

View File

@ -1627,9 +1627,11 @@ vm_object_backing_scan(vm_object_t object, int op)
p = TAILQ_FIRST(&backing_object->memq);
continue;
}
/* Use the old pindex to free the right page. */
if (backing_object->type == OBJT_SWAP)
swap_pager_freespace(backing_object, p->pindex,
1);
swap_pager_freespace(backing_object,
new_pindex + backing_offset_index, 1);
#if VM_NRESERVLEVEL > 0
/*