|
From: | Paolo Bonzini |
Subject: | Re: [Qemu-devel] [PATCH v2 8/8] virtio-blk: Fill in VirtIOBlockReq.out in dataplane code |
Date: | Thu, 05 Jun 2014 06:09:32 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 |
Il 05/06/2014 05:50, Fam Zheng ha scritto:
> Can you try moving the req allocation and assignments inside process_request > instead? Then you can fill in req->out directly without the struct > assignment. >The owners of req are do_rdwr_cmd and do_flush_cmd, but do_scsi_cmd and do_get_id_cmd don't need to allocate.
They don't need it, but using req there and freeing it in complete_request_early perhaps could simplify the code.
After all, the first three arguments of complete_request_early (s, elem, inhdr) are a duplicate of VirtIOBlockReq and do_flush_cmd is already doing a free after complete_request_early.
Paolo
Moving the allocation means transfering the ownership from process_request to respective cmd functions, and it's not used in two out of four. Not sure much better than this way, but that's doable.
[Prev in Thread] | Current Thread | [Next in Thread] |