From nobody Wed May 14 15:07:17 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1520359145051226.97490928283207; Tue, 6 Mar 2018 09:59:05 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6D51C776C5; Tue, 6 Mar 2018 17:59:03 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 460BC600D3; Tue, 6 Mar 2018 17:59:03 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 0D58D4A471; Tue, 6 Mar 2018 17:59:03 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w26HwvwU002049 for ; Tue, 6 Mar 2018 12:58:57 -0500 Received: by smtp.corp.redhat.com (Postfix) id C9A141C71C; Tue, 6 Mar 2018 17:58:57 +0000 (UTC) Received: from t460.redhat.com (unknown [10.33.36.54]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3ED001C71B; Tue, 6 Mar 2018 17:58:57 +0000 (UTC) From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: libvir-list@redhat.com Date: Tue, 6 Mar 2018 17:58:48 +0000 Message-Id: <20180306175852.18773-2-berrange@redhat.com> In-Reply-To: <20180306175852.18773-1-berrange@redhat.com> References: <20180306175852.18773-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 1/5] rpc: push ref acquisition into RPC dispatch function X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Tue, 06 Mar 2018 17:59:03 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 There's no reason why the virNetServerClientDispatchRead method needs to acquire an extra reference on the "client" object. An extra reference is only needed if the registered dispatch callback is going to keep hold of the "client" for work in the background. Thus we can push reference acquisition into virNetServerDispatchNewMessage. Signed-off-by: Daniel P. Berrang=C3=A9 Reviewed-by: Jim Fehlig Reviewed-by: John Ferlan --- src/rpc/virnetserver.c | 2 ++ src/rpc/virnetserverclient.c | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rpc/virnetserver.c b/src/rpc/virnetserver.c index 204f425264..28afe54e49 100644 --- a/src/rpc/virnetserver.c +++ b/src/rpc/virnetserver.c @@ -217,9 +217,11 @@ static int virNetServerDispatchNewMessage(virNetServer= ClientPtr client, priority =3D virNetServerProgramGetPriority(prog, msg->header.= proc); } =20 + virObjectRef(client); ret =3D virThreadPoolSendJob(srv->workers, priority, job); =20 if (ret < 0) { + virObjectUnref(client); VIR_FREE(job); virObjectUnref(prog); } diff --git a/src/rpc/virnetserverclient.c b/src/rpc/virnetserverclient.c index 388514946b..00459d17ba 100644 --- a/src/rpc/virnetserverclient.c +++ b/src/rpc/virnetserverclient.c @@ -1315,12 +1315,10 @@ static void virNetServerClientDispatchRead(virNetSe= rverClientPtr client) =20 /* Send off to for normal dispatch to workers */ if (msg) { - virObjectRef(client); if (!client->dispatchFunc || client->dispatchFunc(client, msg, client->dispatchOpaque) = < 0) { virNetMessageFree(msg); client->wantClose =3D true; - virObjectUnref(client); return; } } --=20 2.14.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list