From nobody Mon Feb 9 08:56:11 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1598030538; cv=none; d=zohomail.com; s=zohoarc; b=nWm6dxc+Ez+TCPLfyB9TvOZS1ePQ0+9Phx9Z0eID1d0IwTToZAHYijJTferwnYuepVc6v2ekVQKtC/CjimD60PrDnrtAyWUQjVa6U/cFr0NS7LWJ030A3Tfn7BhhvWouVSRMRzbVb5xAJIDOcw7tVzVJ6elpyLlYLUnkdZmRCdE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598030538; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4L5xY7hnZTbpnE4UWtkZJDAbXGSq8u3Zb3Rzq8nKXhU=; b=KVDDksymtHtw9SYCK7LBR9Xg9WBfcwIIsLlE0D1WREyc5KLraJkL7r6CTXY20uLfLGxmdy7HI6Rb29u1YQTdcMk2aXkzPunNeh10BwsFVAW984+6JzVI/GgkuQVnlLltA4dZArs2VFP9tULtiAvVdxtQ8EbyW5j9uehKll6sgB0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1598030538523449.7682266888047; Fri, 21 Aug 2020 10:22:18 -0700 (PDT) Received: from localhost ([::1]:51784 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1k9Ak4-0001vY-F6 for importer@patchew.org; Fri, 21 Aug 2020 13:22:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54312) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k9AjA-0000Sf-0s for qemu-devel@nongnu.org; Fri, 21 Aug 2020 13:21:20 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:32834) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1k9Aj7-0008Of-HQ for qemu-devel@nongnu.org; Fri, 21 Aug 2020 13:21:19 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-473-tmEXOINWOsSHHg4TN0E0Ew-1; Fri, 21 Aug 2020 13:21:14 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 04D1651B7; Fri, 21 Aug 2020 17:21:14 +0000 (UTC) Received: from localhost.localdomain.com (unknown [10.36.110.21]) by smtp.corp.redhat.com (Postfix) with ESMTP id F384160CD0; Fri, 21 Aug 2020 17:21:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598030476; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4L5xY7hnZTbpnE4UWtkZJDAbXGSq8u3Zb3Rzq8nKXhU=; b=IJYu9cU4yXt5gxgmEx7Wbx2WRkW3p7xP9C2+cchA4OGH34IutBVaEAJd9UDVrHCtt6mtWz GvL+wPQBF7pO/Qz68Y//NhmcO9GEE/9Sa4EyoWZE6SFGCylO7CsZZwyGw4mwe1uydmVhZZ kJIQPzAjAaNrK2sEAVszEfmNZWTd+20= X-MC-Unique: tmEXOINWOsSHHg4TN0E0Ew-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v4 2/6] util: refactor qemu_open_old to split off variadic args handling Date: Fri, 21 Aug 2020 18:21:01 +0100 Message-Id: <20200821172105.608752-3-berrange@redhat.com> In-Reply-To: <20200821172105.608752-1-berrange@redhat.com> References: <20200821172105.608752-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=berrange@redhat.com X-Mimecast-Spam-Score: 0.001 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=216.205.24.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/21 04:26:32 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -40 X-Spam_score: -4.1 X-Spam_bar: ---- X-Spam_report: (-4.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=-1, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , qemu-block@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Markus Armbruster , Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) This simple refactoring prepares for future patches. The variadic args handling is split from the main bulk of the open logic. The duplicated calls to open() are removed in favour of updating the "flags" variable to have O_CLOEXEC. Signed-off-by: Daniel P. Berrang=C3=A9 --- util/osdep.c | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/util/osdep.c b/util/osdep.c index 9df1b6adec..9ff92551e7 100644 --- a/util/osdep.c +++ b/util/osdep.c @@ -22,6 +22,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" +#include "qapi/error.h" =20 /* Needed early for CONFIG_BSD etc. */ =20 @@ -282,10 +283,10 @@ int qemu_lock_fd_test(int fd, int64_t start, int64_t = len, bool exclusive) /* * Opens a file with FD_CLOEXEC set */ -int qemu_open_old(const char *name, int flags, ...) +static int +qemu_open_internal(const char *name, int flags, mode_t mode) { int ret; - int mode =3D 0; =20 #ifndef _WIN32 const char *fdset_id_str; @@ -323,22 +324,35 @@ int qemu_open_old(const char *name, int flags, ...) } #endif =20 - if (flags & O_CREAT) { - va_list ap; - - va_start(ap, flags); - mode =3D va_arg(ap, int); - va_end(ap); - } - #ifdef O_CLOEXEC - ret =3D open(name, flags | O_CLOEXEC, mode); -#else + flags |=3D O_CLOEXEC; +#endif /* O_CLOEXEC */ + ret =3D open(name, flags, mode); + +#ifndef O_CLOEXEC if (ret >=3D 0) { qemu_set_cloexec(ret); } -#endif +#endif /* ! O_CLOEXEC */ + + return ret; +} + + +int qemu_open_old(const char *name, int flags, ...) +{ + va_list ap; + mode_t mode =3D 0; + int ret; + + va_start(ap, flags); + if (flags & O_CREAT) { + mode =3D va_arg(ap, int); + } + va_end(ap); + + ret =3D qemu_open_internal(name, flags, mode); =20 #ifdef O_DIRECT if (ret =3D=3D -1 && errno =3D=3D EINVAL && (flags & O_DIRECT)) { --=20 2.26.2