From nobody Fri Apr 26 00:01:34 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org ARC-Seal: i=1; a=rsa-sha256; t=1584973774; cv=none; d=zohomail.com; s=zohoarc; b=jwNXEOQWVCjOt2BBL3r0QMnV5+2mkm26LSMQnMBrsvvPmX21ktIroZGQe9lBMIJTQV7vtV4dPFOq4vVvnkPruZXpClzY14/ULpdfuNiSzYxcpAZsWzz8UN9daLphDvBew92bYpFe0QgS/kPfxyFHxmK1Zg3l+QZUIXYrmKAhBgk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584973774; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=bwrUTyjN96XPV69Rxt87piXrCQ6w/NMngpEJJoDxBpk=; b=T0/AbWrZYbzpFKM1VQWRbAROFO3tuGiGr3FEU+CELBtjrYXKi4WfrAZh9GsVuPJLiMNkaTjmXdzmGsABAhDvzLSXQO3MtiAJn+m6CxaPhL2LBEZqc/g+fvV48AyOrqoH3Lzv2P8rLByA+vMmRt46Hx5EhDz8e7/+EcRta4wTBX8= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1584973774754823.4026275814513; Mon, 23 Mar 2020 07:29:34 -0700 (PDT) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jGO4f-0005gX-NX; Mon, 23 Mar 2020 14:29:05 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jGO4e-0005gR-35 for xen-devel@lists.xenproject.org; Mon, 23 Mar 2020 14:29:04 +0000 Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id a490aa50-6d12-11ea-82e2-12813bfff9fa; Mon, 23 Mar 2020 14:29:03 +0000 (UTC) Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 5A6A0B1D4; Mon, 23 Mar 2020 14:29:02 +0000 (UTC) X-Inumbo-ID: a490aa50-6d12-11ea-82e2-12813bfff9fa X-Virus-Scanned: by amavisd-new at test-mx.suse.de From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Mon, 23 Mar 2020 15:29:00 +0100 Message-Id: <20200323142900.22255-1-jgross@suse.com> X-Mailer: git-send-email 2.16.4 Subject: [Xen-devel] [PATCH] tools/xenstore: don't close connection in xs_talkv() X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Ian Jackson , Wei Liu MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" In case of some errors xs_talkv() will close the connection to Xenstore. This is annoying as it is not clear to the caller in which error case the connection is still available. Drop that implicit closing to make the interface behave in a sane and predictable way. Signed-off-by: Juergen Gross Reviewed-by: Andrew Cooper --- tools/xenstore/xs.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/tools/xenstore/xs.c b/tools/xenstore/xs.c index aa1d24b8b9..bbf3e00bed 100644 --- a/tools/xenstore/xs.c +++ b/tools/xenstore/xs.c @@ -524,12 +524,14 @@ static void *xs_talkv(struct xs_handle *h, xs_transac= tion_t t, goto fail; =20 ret =3D read_reply(h, &msg.type, len); - if (!ret) - goto fail; =20 mutex_unlock(&h->request_mutex); =20 sigaction(SIGPIPE, &oldact, NULL); + + if (!ret) + return NULL; + if (msg.type =3D=3D XS_ERROR) { saved_errno =3D get_error(ret); free(ret); @@ -539,19 +541,15 @@ static void *xs_talkv(struct xs_handle *h, xs_transac= tion_t t, =20 if (msg.type !=3D type) { free(ret); - saved_errno =3D EBADF; - goto close_fd; + errno =3D EBADF; + return NULL; } return ret; =20 fail: - /* We're in a bad state, so close fd. */ saved_errno =3D errno; mutex_unlock(&h->request_mutex); sigaction(SIGPIPE, &oldact, NULL); -close_fd: - close(h->fd); - h->fd =3D -1; errno =3D saved_errno; return NULL; } --=20 2.16.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel