]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuSlirpStop: Simplify helper kill
authorMichal Privoznik <mprivozn@redhat.com>
Fri, 13 Mar 2020 15:12:59 +0000 (16:12 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 24 Mar 2020 14:54:07 +0000 (15:54 +0100)
Now, that we know that the slirp helper will have the pidfile
open and locked we can use virPidFileForceCleanupPath() to kill
it and unlink the pidfile.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
src/qemu/qemu_slirp.c

index 5266b36eaa97a6a53c94f34bf7d1dc3365e5080d..be586ade126a2d7fafaf18176b4c454566460a6e 100644 (file)
@@ -246,8 +246,6 @@ qemuSlirpStop(qemuSlirpPtr slirp,
     g_autofree char *dbus_path = NULL;
     g_autofree char *id = qemuSlirpGetDBusVMStateId(net);
     virErrorPtr orig_err;
-    pid_t pid;
-    int rc;
 
     if (!(pidfile = qemuSlirpCreatePidFilename(cfg, vm->def, net->info.alias))) {
         VIR_WARN("Unable to construct slirp pidfile path");
@@ -261,17 +259,11 @@ qemuSlirpStop(qemuSlirpPtr slirp,
     }
 
     virErrorPreserveLast(&orig_err);
-    rc = virPidFileReadPathIfAlive(pidfile, &pid, cfg->slirpHelperName);
-    if (rc >= 0 && pid != (pid_t) -1)
-        virProcessKillPainfully(pid, true);
-
-    if (unlink(pidfile) < 0 &&
-        errno != ENOENT) {
-        virReportSystemError(errno,
-                             _("Unable to remove stale pidfile %s"),
-                             pidfile);
+    if (virPidFileForceCleanupPath(pidfile) < 0) {
+        VIR_WARN("Unable to kill slirp process");
+    } else {
+        slirp->pid = 0;
     }
-    slirp->pid = 0;
 
     dbus_path = qemuSlirpGetDBusPath(cfg, vm->def, net->info.alias);
     if (dbus_path) {