[libvirt] [PATCH] qemu: Genericize tapfds/ntapfds

There doesn't seem to be anything specific to tap devices for this array of file descriptors which need to stay open of the guest to use. Rename then for others to make use of. Signed-off-by: Alex Williamson <alex.williamson@redhat.com> --- src/qemu/qemu_conf.c | 28 ++++++++++++++-------------- src/qemu/qemu_driver.c | 18 +++++++++--------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index 3e334dc..d7bc798 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -3422,8 +3422,8 @@ int qemudBuildCommandLine(virConnectPtr conn, unsigned long long qemuCmdFlags, const char ***retargv, const char ***retenv, - int **tapfds, - int *ntapfds, + int **vmfds, + int *nvmfds, const char *migrateFrom, virDomainSnapshotObjPtr current_snapshot) { @@ -4116,7 +4116,7 @@ int qemudBuildCommandLine(virConnectPtr conn, if (tapfd < 0) goto error; - if (VIR_REALLOC_N(*tapfds, (*ntapfds)+1) < 0) { + if (VIR_REALLOC_N(*vmfds, (*nvmfds)+1) < 0) { virNWFilterTearNWFilter(net); close(tapfd); goto no_memory; @@ -4124,7 +4124,7 @@ int qemudBuildCommandLine(virConnectPtr conn, last_good_net = i; - (*tapfds)[(*ntapfds)++] = tapfd; + (*vmfds)[(*nvmfds)++] = tapfd; if (snprintf(tapfd_name, sizeof(tapfd_name), "%d", tapfd) >= sizeof(tapfd_name)) goto no_memory; @@ -4136,7 +4136,7 @@ int qemudBuildCommandLine(virConnectPtr conn, if (tapfd < 0) goto error; - if (VIR_REALLOC_N(*tapfds, (*ntapfds)+1) < 0) { + if (VIR_REALLOC_N(*vmfds, (*nvmfds)+1) < 0) { virNWFilterTearNWFilter(net); close(tapfd); goto no_memory; @@ -4144,7 +4144,7 @@ int qemudBuildCommandLine(virConnectPtr conn, last_good_net = i; - (*tapfds)[(*ntapfds)++] = tapfd; + (*vmfds)[(*nvmfds)++] = tapfd; if (snprintf(tapfd_name, sizeof(tapfd_name), "%d", tapfd) >= sizeof(tapfd_name)) goto no_memory; @@ -4157,12 +4157,12 @@ int qemudBuildCommandLine(virConnectPtr conn, network device */ int vhostfd = qemudOpenVhostNet(net, qemuCmdFlags); if (vhostfd >= 0) { - if (VIR_REALLOC_N(*tapfds, (*ntapfds)+1) < 0) { + if (VIR_REALLOC_N(*vmfds, (*nvmfds)+1) < 0) { close(vhostfd); goto no_memory; } - (*tapfds)[(*ntapfds)++] = vhostfd; + (*vmfds)[(*nvmfds)++] = vhostfd; if (snprintf(vhostfd_name, sizeof(vhostfd_name), "%d", vhostfd) >= sizeof(vhostfd_name)) goto no_memory; @@ -4653,12 +4653,12 @@ int qemudBuildCommandLine(virConnectPtr conn, error: for (i = 0; i <= last_good_net; i++) virNWFilterTearNWFilter(def->nets[i]); - if (tapfds && - *tapfds) { - for (i = 0; i < *ntapfds; i++) - close((*tapfds)[i]); - VIR_FREE(*tapfds); - *ntapfds = 0; + if (vmfds && + *vmfds) { + for (i = 0; i < *nvmfds; i++) + close((*vmfds)[i]); + VIR_FREE(*vmfds); + *nvmfds = 0; } if (qargv) { for (i = 0 ; i < qargc ; i++) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 65ca117..dd5bd24 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -3253,8 +3253,8 @@ static int qemudStartVMDaemon(virConnectPtr conn, const char **progenv = NULL; int i, ret; struct stat sb; - int *tapfds = NULL; - int ntapfds = 0; + int *vmfds = NULL; + int nvmfds = 0; unsigned long long qemuCmdFlags; fd_set keepfd; const char *emulator; @@ -3411,7 +3411,7 @@ static int qemudStartVMDaemon(virConnectPtr conn, vm->def->id = driver->nextvmid++; if (qemudBuildCommandLine(conn, driver, vm->def, priv->monConfig, priv->monJSON, qemuCmdFlags, &argv, &progenv, - &tapfds, &ntapfds, migrateFrom, + &vmfds, &nvmfds, migrateFrom, vm->current_snapshot) < 0) goto cleanup; @@ -3462,8 +3462,8 @@ static int qemudStartVMDaemon(virConnectPtr conn, VIR_WARN("Unable to seek to end of logfile: %s", virStrerror(errno, ebuf, sizeof ebuf)); - for (i = 0 ; i < ntapfds ; i++) - FD_SET(tapfds[i], &keepfd); + for (i = 0 ; i < nvmfds ; i++) + FD_SET(vmfds[i], &keepfd); ret = virExecDaemonize(argv, progenv, &keepfd, &child, stdin_fd, &logfile, &logfile, @@ -3504,11 +3504,11 @@ static int qemudStartVMDaemon(virConnectPtr conn, if (ret == -1) /* The VM failed to start; tear filters before taps */ virNWFilterTearVMNWFilters(vm); - if (tapfds) { - for (i = 0 ; i < ntapfds ; i++) { - close(tapfds[i]); + if (vmfds) { + for (i = 0 ; i < nvmfds ; i++) { + close(vmfds[i]); } - VIR_FREE(tapfds); + VIR_FREE(vmfds); } if (ret == -1) /* The VM failed to start */

* Alex Williamson (alex.williamson@redhat.com) wrote:
There doesn't seem to be anything specific to tap devices for this array of file descriptors which need to stay open of the guest to use. Rename then for others to make use of.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Simple enough, and allows it to be used for other fds like Alex proposed in the RFC patch. Acked-by: Chris Wright <chrisw@redhat.com>

On 05/20/2010 12:24 AM, Chris Wright wrote:
* Alex Williamson (alex.williamson@redhat.com) wrote:
There doesn't seem to be anything specific to tap devices for this array of file descriptors which need to stay open of the guest to use. Rename then for others to make use of.
Signed-off-by: Alex Williamson<alex.williamson@redhat.com>
Simple enough, and allows it to be used for other fds like Alex proposed in the RFC patch.
Heh. Actually I had already reused it for the vhost fd (which is network-related, but certainly not a tap).

On 05/19/2010 04:00 PM, Alex Williamson wrote:
There doesn't seem to be anything specific to tap devices for this array of file descriptors which need to stay open of the guest to use. Rename then for others to make use of.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Yeah, that looks fine. I've pushed this into the repository now. -- Chris Lalancette
participants (4)
-
Alex Williamson
-
Chris Lalancette
-
Chris Wright
-
Laine Stump