Revision 4277906d hw/virtio-blk.c

b/hw/virtio-blk.c
165 165
static void virtio_blk_handle_scsi(VirtIOBlockReq *req)
166 166
{
167 167
    struct sg_io_hdr hdr;
168
    int ret, size = 0;
168
    int ret;
169 169
    int status;
170 170
    int i;
171 171

  
......
194 194
     * before the regular inhdr.
195 195
     */
196 196
    req->scsi = (void *)req->elem.in_sg[req->elem.in_num - 2].iov_base;
197
    size = sizeof(*req->in) + sizeof(*req->scsi);
198 197

  
199 198
    memset(&hdr, 0, sizeof(struct sg_io_hdr));
200 199
    hdr.interface_id = 'S';
......
226 225
            hdr.dxfer_len += req->elem.in_sg[i].iov_len;
227 226

  
228 227
        hdr.dxferp = req->elem.in_sg;
229
        size += hdr.dxfer_len;
230 228
    } else {
231 229
        /*
232 230
         * Some SCSI commands don't actually transfer any data.
......
236 234

  
237 235
    hdr.sbp = req->elem.in_sg[req->elem.in_num - 3].iov_base;
238 236
    hdr.mx_sb_len = req->elem.in_sg[req->elem.in_num - 3].iov_len;
239
    size += hdr.mx_sb_len;
240 237

  
241 238
    ret = bdrv_ioctl(req->dev->bs, SG_IO, &hdr);
242 239
    if (ret) {

Also available in: Unified diff