[libvirt] [PATCH] qemu: Dissolve qemuBuildVhostuserCommandLine in qemuBuildInterfaceCommandLine
Erik Skultety
eskultet at redhat.com
Fri Nov 2 14:44:20 UTC 2018
On Fri, Nov 02, 2018 at 01:56:17PM +0100, Michal Privoznik wrote:
> https://bugzilla.redhat.com/show_bug.cgi?id=1524230
>
> The qemuBuildVhostuserCommandLine builds command line for
> vhostuser type interfaces. It is duplicating some code of the
> function it is called from (qemuBuildInterfaceCommandLine)
> because of the way it's called. If we merge it into the caller
> not only we save a few lines but we also enable checks that we
> would have to duplicate otherwise (e.g. QoS availability).
>
> While at it, reorder some VIR_FREE() in
> qemuBuildInterfaceCommandLine so that it is easier to track which
> variables are freed and which are not.
Sounds like ^this would go into a separate trivial patch.
>
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
> src/qemu/qemu_command.c | 113 +++++++++++++++++-----------------------
> 1 file changed, 48 insertions(+), 65 deletions(-)
>
...
> @@ -8595,24 +8577,25 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver,
> virSetError(saved_err);
> virFreeError(saved_err);
> }
> - for (i = 0; tapfd && i < tapfdSize && tapfd[i] >= 0; i++) {
> - if (ret < 0)
> - VIR_FORCE_CLOSE(tapfd[i]);
> - if (tapfdName)
> - VIR_FREE(tapfdName[i]);
> - }
> for (i = 0; vhostfd && i < vhostfdSize && vhostfd[i] >= 0; i++) {
> if (ret < 0)
> VIR_FORCE_CLOSE(vhostfd[i]);
> if (vhostfdName)
> VIR_FREE(vhostfdName[i]);
> }
> - VIR_FREE(tapfd);
> + VIR_FREE(vhostfdName);
> + for (i = 0; tapfd && i < tapfdSize && tapfd[i] >= 0; i++) {
> + if (ret < 0)
> + VIR_FORCE_CLOSE(tapfd[i]);
> + if (tapfdName)
> + VIR_FREE(tapfdName[i]);
> + }
> + VIR_FREE(tapfdName);
> VIR_FREE(vhostfd);
> - VIR_FREE(nic);
> + VIR_FREE(tapfd);
> + VIR_FREE(chardev);
> VIR_FREE(host);
> - VIR_FREE(tapfdName);
> - VIR_FREE(vhostfdName);
> + VIR_FREE(nic);
I don't see how ^this hunk made it better. If anything, then the VIR_FREEs
should be probably coupled like:
VIR_FREE(tapfd);
VIR_FREE(tapfdName);
VIR_FREE(vhostfd);
VIR_FREE(vhostfdName);
<the rest of them...>
It would also need to be a separate patch. To the rest of the changes:
Reviewed-by: Erik Skultety <eskultet at redhat.com>
More information about the libvir-list
mailing list