]> xenbits.xensource.com Git - people/dstodden/blktap.git/commitdiff
PR-1053: Simplify bounce buffer memcpy.
authorDaniel Stodden <daniel.stodden@citrix.com>
Tue, 7 Sep 2010 11:47:23 +0000 (04:47 -0700)
committerDaniel Stodden <daniel.stodden@citrix.com>
Tue, 7 Sep 2010 11:47:23 +0000 (04:47 -0700)
drivers/block-lcache.c

index 376811876725f7cc2a199ed6cdcd8c5f8670d8d5..451f4e26ebd5d7ccd185e4b9b8d10acb0abd3d76 100644 (file)
@@ -158,23 +158,19 @@ local_cache_complete_read(local_cache_t *cache, local_cache_request_t *lreq)
 {
        td_vbd_t *vbd = lreq->treq.image->private;
        td_request_t clone;
-       int i;
 
+       if (!lreq->err) {
+               size_t sz = lreq->treq.secs << SECTOR_SHIFT;
+               memcpy(lreq->treq.buf, lreq->buf, sz);
+       }
+
+       td_complete_request(lreq->treq, lreq->err);
 
        if (lreq->err) {
-               td_complete_request(lreq->treq, lreq->err);
                local_cache_put_request(cache, lreq);
                return;
        }
 
-       for (i = 0; i < lreq->treq.secs; i++) {
-               off_t off = i << VHD_SECTOR_SHIFT;
-               //DPRINTF(">>> populating sec 0x%08llx\n", lreq->treq.sec + i);
-               memcpy(lreq->treq.buf + off, lreq->buf + off, VHD_SECTOR_SIZE);
-       }
-
-       td_complete_request(lreq->treq, lreq->err);
-
        lreq->phase   = LC_WRITE;
        lreq->secs    = lreq->treq.secs;
        lreq->err     = 0;