From nobody Sun Oct 25 16:50:41 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1792485269; cv=none; d=zohomail.com; s=zohoarc; b=d8Peecq8S0kEu19yfasUvr1Ke35xAUZSCLX9aw91V1zGBbHOk9SEqIZ1ECskxT/3WeO0IwJJvEEgukwwrMLGfRTAMQZVz1WpH06F/hjP7BpE7YqAUmHYRNLOBnJXP8OugEuyHjq32ksp/44YflO7WMSn2t9ykF/aPX7mHrqGfJ8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1792485269; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:Subject:Subject:To:To:Message-Id:Cc; bh=qPZxUehGiUegLH+emMJVu2hGnYC3k5I3Dp1ugConZzo=; b=I22JblQx0wrCDQR5c5Yp2gW3MKLxNi72McW0UZbK/o0xSntY+UBfmpyACkqzzqdUbrH7Hqx8UNz2pa0gMA+r5KSRb3/8EkV0nMNIv1AjQDCuOZP2wl4cTzJu94mCrz0Qm8b0Zx/QaIumIWxgc+vsmGif/DhtdUumW2V7mHtNZSo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1792485269159853.2556421656408; Tue, 20 Oct 2026 01:34:29 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id A6D28419B1; Tue, 20 Oct 2026 04:34:26 -0400 (EDT) Received: from [172.19.199.16] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 44DD941B7B; Tue, 20 Oct 2026 04:33:21 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id E62463F35B; Tue, 20 Oct 2026 04:33:12 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id EBC8D3F36E for ; Tue, 20 Oct 2026 04:33:10 -0400 (EDT) Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-400-OCqdelR3MT-rUnupuE0nJA-1; Tue, 20 Oct 2026 08:33:08 +0000 Received: from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 6AB221955F45 for ; Tue, 20 Oct 2026 08:33:07 +0000 (UTC) Received: from mprivozn-thinkpadt14gen4.tpbc.csb (unknown [10.43.3.180]) by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id CD0571956088 for ; Tue, 20 Oct 2026 08:33:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,RCVD_IN_SBL_CSS,SPF_HELO_PASS autolearn=no autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1792485189; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qPZxUehGiUegLH+emMJVu2hGnYC3k5I3Dp1ugConZzo=; b=eIPl5n6ih0SA2S+Y5dxbKSt4BSUCPrUvjX4RNFc2yIphrRY/0+BgftY1c7q/RJQQ4gJjD0 UIe+MVoFJ5TtnmOaZMmP0eYTP8atJxpQvm/NxMAYzhW8PGnuzoCgGaEYDdzNK65W1qvmQ5 +6yPEIaKnDjn9FQxcik596S3LFKH6DY= X-MC-Unique: OCqdelR3MT-rUnupuE0nJA-1 X-Mimecast-MFC-AGG-ID: OCqdelR3MT-rUnupuE0nJA_1792485187 To: devel@lists.libvirt.org Subject: [PATCH merged] qemu: fix symlink path comparison in namespace setup Date: Tue, 20 Oct 2026 10:33:04 +0200 Message-ID: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.12 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: IeJxoEDX0w6CEXmP2Mu7tmcRDQszHFoGkTUK__v2yWI_1792485187 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: UIQWMSUHU6ZGME7SU7OUIJX7GZZVFVZX X-Message-ID-Hash: UIQWMSUHU6ZGME7SU7OUIJX7GZZVFVZX X-MailFrom: mprivozn@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Michal Privoznik via Devel Reply-To: Michal Privoznik X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1792485272289158500 Content-Type: text/plain; charset="utf-8"; x-default="true" From: sayaoailun When comparing symlink targets in qemuNamespaceMknodOne(), the code directly compares the raw symlink target (which may be a relative path) with data->target (which was normalized to an absolute path in qemuNamespaceMknodItemInit()). This causes false mismatches when the symlink uses a relative path. Fix this by normalizing the symlink target to an absolute path before comparison, using the same logic as qemuNamespaceMknodItemInit(). This fixes VM startup failure with LVM volumes that use relative symlinks, which reported 'Unable to remove symlink: Device or resource busy'. Signed-off-by: sayaoailun Reviewed-by: Michal Privoznik Signed-off-by: Michal Privoznik --- src/qemu/qemu_namespace.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_namespace.c b/src/qemu/qemu_namespace.c index 4a063064f1..29fec2af45 100644 --- a/src/qemu/qemu_namespace.c +++ b/src/qemu/qemu_namespace.c @@ -1031,9 +1031,26 @@ qemuNamespaceMknodOne(qemuNamespaceMknodItem *data) =20 if (isLink) { g_autofree char *target =3D NULL; + bool targetMatches =3D false; =20 - if ((target =3D g_file_read_link(data->file, NULL)) && - STREQ(target, data->target)) { + if ((target =3D g_file_read_link(data->file, NULL))) { + /* Normalize relative path to absolute path for comparison, + * using the same logic as qemuNamespaceMknodItemInit(). */ + if (!g_path_is_absolute(target)) { + g_autofree char *fileTmp =3D g_strdup(data->file); + char *c =3D NULL; + + if ((c =3D strrchr(fileTmp, '/'))) + *(c + 1) =3D '\0'; + + target =3D g_strdup_printf("%s%s", fileTmp, target); + } + + if (STREQ(target, data->target)) + targetMatches =3D true; + } + + if (targetMatches) { VIR_DEBUG("Skipping symlink %s -> %s which exists and points t= o correct target", data->file, data->target); } else { --=20 2.56.0