diff options
author | Anthony Liguori <aliguori@us.ibm.com> | 2007-11-09 06:13:44 +0300 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2007-11-12 05:59:26 +0300 |
commit | 1200e646ae238afc536be70257290eb33fb6e364 (patch) | |
tree | c9efa72365b96fdc4323834b39068442f5caef89 | |
parent | 1bc4953ed44454c7f53d0b609445d1534981ee75 (diff) | |
download | linux-1200e646ae238afc536be70257290eb33fb6e364.tar.xz |
lguest: Fix lguest virtio-blk backend size computation
This seems like an obvious typo but it's worked in the past because the virtio
blk frontend just ignores the length field on completion.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
-rw-r--r-- | Documentation/lguest/lguest.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Documentation/lguest/lguest.c b/Documentation/lguest/lguest.c index f2668390e8f7..157f6a26b939 100644 --- a/Documentation/lguest/lguest.c +++ b/Documentation/lguest/lguest.c @@ -1342,7 +1342,7 @@ static bool service_io(struct device *dev) if (out->type & VIRTIO_BLK_T_SCSI_CMD) { fprintf(stderr, "Scsi commands unsupported\n"); in->status = VIRTIO_BLK_S_UNSUPP; - wlen = sizeof(in); + wlen = sizeof(*in); } else if (out->type & VIRTIO_BLK_T_OUT) { /* Write */ @@ -1363,7 +1363,7 @@ static bool service_io(struct device *dev) /* Die, bad Guest, die. */ errx(1, "Write past end %llu+%u", off, ret); } - wlen = sizeof(in); + wlen = sizeof(*in); in->status = (ret >= 0 ? VIRTIO_BLK_S_OK : VIRTIO_BLK_S_IOERR); } else { /* Read */ @@ -1376,10 +1376,10 @@ static bool service_io(struct device *dev) ret = readv(vblk->fd, iov+1, in_num-1); verbose("READ from sector %llu: %i\n", out->sector, ret); if (ret >= 0) { - wlen = sizeof(in) + ret; + wlen = sizeof(*in) + ret; in->status = VIRTIO_BLK_S_OK; } else { - wlen = sizeof(in); + wlen = sizeof(*in); in->status = VIRTIO_BLK_S_IOERR; } } |