qemu_fd: Remove error checking from qemuFDPassAddFD

It's effectively replaced by checks in qemuFDPassTransfer. This will
simplify cleanup paths on constructing the qemuFDPass object when FDs
are being handled.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2022-05-04 14:12:58 +02:00
parent 80f75fb758
commit 5077263ecb
5 changed files with 11 additions and 39 deletions

View File

@ -4948,10 +4948,7 @@ qemuBuildVideoCommandLine(virCommand *cmd,
chrsrc->type = VIR_DOMAIN_CHR_TYPE_UNIX;
chrsrcpriv->sourcefd = qemuFDPassNewDirect(video->info.alias, priv);
if (qemuFDPassAddFD(chrsrcpriv->sourcefd,
&videopriv->vhost_user_fd,
"-vhost-user") < 0)
return -1;
qemuFDPassAddFD(chrsrcpriv->sourcefd, &videopriv->vhost_user_fd, "-vhost-user");
if (qemuBuildChardevCommand(cmd, chrsrc, chrAlias, priv->qemuCaps) < 0)
return -1;
@ -8785,8 +8782,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriver *driver,
vdpa = qemuFDPassNew(net->info.alias, priv);
if (qemuFDPassAddFD(vdpa, &vdpafd, "-vdpa") < 0)
return -1;
qemuFDPassAddFD(vdpa, &vdpafd, "-vdpa");
}
break;
@ -9814,9 +9810,8 @@ qemuBuildTPMCommandLine(virCommand *cmd,
passtpm = qemuFDPassNew(tpm->info.alias, priv);
passcancel = qemuFDPassNew(tpm->info.alias, priv);
if (qemuFDPassAddFD(passtpm, &fdtpm, "-tpm") < 0 ||
qemuFDPassAddFD(passcancel, &fdcancel, "-cancel") < 0)
return -1;
qemuFDPassAddFD(passtpm, &fdtpm, "-tpm");
qemuFDPassAddFD(passcancel, &fdcancel, "-cancel");
}
break;

View File

@ -159,37 +159,19 @@ qemuFDPassNewDirect(const char *prefix,
* @suffix is used to build the name of the file descriptor by concatenating
* it with @prefix passed to qemuFDPassNew. @suffix may be NULL, in which case
* it's considered to be an empty string.
*
* Returns 0 on success, -1 on error (when attempting to pass multiple FDs) using
* the 'direct' method.
*/
int
void
qemuFDPassAddFD(qemuFDPass *fdpass,
int *fd,
const char *suffix)
{
struct qemuFDPassFD newfd = { .fd = *fd };
if (newfd.fd < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("invalid file descriptor"));
return -1;
}
if (!fdpass->useFDSet &&
fdpass->nfds >= 1) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("direct FD passing supports only 1 file descriptor"));
return -1;
}
*fd = -1;
newfd.opaque = g_strdup_printf("%s%s", fdpass->prefix, NULLSTR_EMPTY(suffix));
VIR_APPEND_ELEMENT(fdpass->fds, fdpass->nfds, newfd);
return 0;
}

View File

@ -34,7 +34,7 @@ qemuFDPass *
qemuFDPassNewDirect(const char *prefix,
void *dompriv);
int
void
qemuFDPassAddFD(qemuFDPass *fdpass,
int *fd,
const char *suffix);

View File

@ -6847,8 +6847,7 @@ qemuProcessPrepareHostBackendChardevOne(virDomainDeviceDef *dev,
charpriv->sourcefd = qemuFDPassNew(devalias, data->priv);
if (qemuFDPassAddFD(charpriv->sourcefd, &sourcefd, "-source") < 0)
return -1;
qemuFDPassAddFD(charpriv->sourcefd, &sourcefd, "-source");
}
break;
@ -6867,8 +6866,7 @@ qemuProcessPrepareHostBackendChardevOne(virDomainDeviceDef *dev,
charpriv->sourcefd = qemuFDPassNewDirect(devalias, data->priv);
if (qemuFDPassAddFD(charpriv->sourcefd, &sourcefd, "-source") < 0)
return -1;
qemuFDPassAddFD(charpriv->sourcefd, &sourcefd, "-source");
}
break;
@ -6895,8 +6893,7 @@ qemuProcessPrepareHostBackendChardevOne(virDomainDeviceDef *dev,
charpriv->logfd = qemuFDPassNew(devalias, data->priv);
if (qemuFDPassAddFD(charpriv->logfd, &logfd, "-log") < 0)
return -1;
qemuFDPassAddFD(charpriv->logfd, &logfd, "-log");
}
return 0;

View File

@ -1084,8 +1084,7 @@ testQemuPrepareHostBackendChardevOne(virDomainDeviceDef *dev,
else
charpriv->sourcefd = qemuFDPassNewDirect(devalias, priv);
if (qemuFDPassAddFD(charpriv->sourcefd, &fakesourcefd, "-source") < 0)
return -1;
qemuFDPassAddFD(charpriv->sourcefd, &fakesourcefd, "-source");
}
if (chardev->logfile) {
@ -1096,8 +1095,7 @@ testQemuPrepareHostBackendChardevOne(virDomainDeviceDef *dev,
charpriv->logfd = qemuFDPassNew(devalias, priv);
if (qemuFDPassAddFD(charpriv->logfd, &fd, "-log") < 0)
return -1;
qemuFDPassAddFD(charpriv->logfd, &fd, "-log");
}
return 0;