Skip to content

Commit

Permalink
lguest: Fix lguest virtio-blk backend size computation
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Anthony Liguori authored and Rusty Russell committed Nov 12, 2007
1 parent 1bc4953 commit 1200e64
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions Documentation/lguest/lguest.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */

Expand All @@ -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 */
Expand All @@ -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;
}
}
Expand Down

0 comments on commit 1200e64

Please sign in to comment.