diff -r b420e936c022 drivers/xen/blkback/blkback.c --- a/drivers/xen/blkback/blkback.c Wed Jul 15 09:10:37 2009 +0100 +++ b/drivers/xen/blkback/blkback.c Thu Jul 16 16:27:16 2009 -0700 @@ -453,6 +453,11 @@ DPRINTK("invalid buffer -- could not remap it\n"); map[i].handle = BLKBACK_INVALID_HANDLE; ret |= 1; + } else { + blkback_pagemap_set(vaddr_pagenr(pending_req, i), + virt_to_page(vaddr(pending_req, i)), + blkif->domid, req->handle, + req->seg[i].gref); } pending_handle(pending_req, i) = map[i].handle; @@ -465,10 +470,6 @@ FOREIGN_FRAME(map[i].dev_bus_addr >> PAGE_SHIFT)); seg[i].buf = map[i].dev_bus_addr | (req->seg[i].first_sect << 9); - blkback_pagemap_set(vaddr_pagenr(pending_req, i), - virt_to_page(vaddr(pending_req, i)), - blkif->domid, req->handle, - req->seg[i].gref); } if (ret)