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.


Reply via email to