]> xenbits.xensource.com Git - legacy/linux-2.6.18-xen.git/commitdiff
blkback: pagemap bug fixes
authorKeir Fraser <keir.fraser@citrix.com>
Mon, 20 Jul 2009 09:03:44 +0000 (10:03 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Mon, 20 Jul 2009 09:03:44 +0000 (10:03 +0100)
Signed-off-by: Jake Wires <jake.wires@citrix.com>
drivers/xen/blkback/blkback.c

index a77290880ec657e1190c4339f932c752a3e01a56..78311e32ceb9bf8f260a1eef130abd70340cc1f1 100644 (file)
@@ -453,6 +453,11 @@ static void dispatch_rw_block_io(blkif_t *blkif,
                        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 @@ static void dispatch_rw_block_io(blkif_t *blkif,
                        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)