[PATCH RESEND 4/5] qemuVirtioFSStop: Simplify daemon kill
Marc-André Lureau
marcandre.lureau at gmail.com
Mon Mar 23 16:38:57 UTC 2020
On Mon, Mar 23, 2020 at 5:14 PM Michal Privoznik <mprivozn at redhat.com> wrote:
>
> Now, that we know that the virtiofsd will have the pidfile open
> and locked we can use virPidFileForceCleanupPath() to kill it and
> unlink the pidfile.
>
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau at redhat.com>
> ---
> src/qemu/qemu_virtiofs.c | 21 +++++++--------------
> 1 file changed, 7 insertions(+), 14 deletions(-)
>
> diff --git a/src/qemu/qemu_virtiofs.c b/src/qemu/qemu_virtiofs.c
> index d579ce1d33..bbe93e0186 100644
> --- a/src/qemu/qemu_virtiofs.c
> +++ b/src/qemu/qemu_virtiofs.c
> @@ -36,6 +36,8 @@
>
> #define VIR_FROM_THIS VIR_FROM_QEMU
>
> +VIR_LOG_INIT("qemu.virtiofs");
> +
>
> char *
> qemuVirtioFSCreatePidFilename(virDomainObjPtr vm,
> @@ -275,28 +277,19 @@ qemuVirtioFSStop(virQEMUDriverPtr driver G_GNUC_UNUSED,
> {
> g_autofree char *pidfile = NULL;
> virErrorPtr orig_err;
> - pid_t pid = -1;
> - int rc;
>
> virErrorPreserveLast(&orig_err);
>
> if (!(pidfile = qemuVirtioFSCreatePidFilename(vm, fs->info.alias)))
> goto cleanup;
>
> - rc = virPidFileReadPathIfAlive(pidfile, &pid, NULL);
> - 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 virtiofsd process");
> + } else {
> + if (QEMU_DOMAIN_FS_PRIVATE(fs)->vhostuser_fs_sock)
> + unlink(QEMU_DOMAIN_FS_PRIVATE(fs)->vhostuser_fs_sock);
> }
>
> - if (QEMU_DOMAIN_FS_PRIVATE(fs)->vhostuser_fs_sock)
> - unlink(QEMU_DOMAIN_FS_PRIVATE(fs)->vhostuser_fs_sock);
> -
> cleanup:
> virErrorRestore(&orig_err);
> }
> --
> 2.24.1
>
--
Marc-André Lureau
More information about the libvir-list
mailing list