From: benno Date: Mon, 16 Mar 2015 20:00:09 +0000 (+0000) Subject: Reset bp->bio_done to unmapped_buf when removing a transient map in biodone. X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=05fdbce0f6097f8b69be407751438159006c7ca2;p=people%2Fjulieng%2Ffreebsd.git Reset bp->bio_done to unmapped_buf when removing a transient map in biodone. Submitted by: Scott Ferris Sponsored by: EMC / Isilon Storage Division Reviewed by: kib --- diff --git a/sys/kern/vfs_bio.c b/sys/kern/vfs_bio.c index f885884506ac..dfe2997bb400 100644 --- a/sys/kern/vfs_bio.c +++ b/sys/kern/vfs_bio.c @@ -3611,6 +3611,7 @@ biodone(struct bio *bp) bp->bio_flags |= BIO_UNMAPPED; start = trunc_page((vm_offset_t)bp->bio_data); end = round_page((vm_offset_t)bp->bio_data + bp->bio_length); + bp->bio_data = unmapped_buf; pmap_qremove(start, OFF_TO_IDX(end - start)); vmem_free(transient_arena, start, end - start); atomic_add_int(&inflight_transient_maps, -1);