From nobody Tue Apr 15 08:21:08 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1622642219; cv=none; d=zohomail.com; s=zohoarc; b=AVaKRcEgnrDidrK5XcD4pTaN9kYLyhG81sdjBYjaQvIAhlDi0RB+3yPjvfSGtukUp+iAitq7HloOy3U7nopE5oqpSDMpptWalcLtZlzP9gsP/RGIkZab2m2T2AQVNI+tffXO//yrqBo+QSHeEZRBM90Tcf4I530ygriXV6BJijA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1622642219; 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=CBaDUKnvJIg91/Bx09z1bIJ+o8IZg/K0bT1Oewi4xNs=; b=lbT42kjDI9G+eb8TChdoSF/LeAes5z1LCjb9UtfCBZL4Mis1qHX1+iYCDuf4Vp7URvT05I9s5tla53ihJD2p3vmdXiUiVNevUUQCZxfFSs4wYjyhpQua8XKzDfddxn6qYbXLyizoU5MOfUpiirrtP6WkcCscknZO7edDcAjCYo0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=pass 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 1622642219291699.1500988134289; Wed, 2 Jun 2021 06:56:59 -0700 (PDT) Received: from localhost ([::1]:49558 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1loRMf-00012n-Md for importer@patchew.org; Wed, 02 Jun 2021 09:56:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43960) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1loRCQ-0001YF-4c for qemu-devel@nongnu.org; Wed, 02 Jun 2021 09:46:22 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:38998) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1loRCN-0007Jo-Gk for qemu-devel@nongnu.org; Wed, 02 Jun 2021 09:46:21 -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-159-zhEb_yy0MbWh4qiV6aZ7IQ-1; Wed, 02 Jun 2021 09:46:08 -0400 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 mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0ED9A1075FEB; Wed, 2 Jun 2021 13:45:46 +0000 (UTC) Received: from merkur.redhat.com (ovpn-114-240.ams2.redhat.com [10.36.114.240]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1F2A319814; Wed, 2 Jun 2021 13:45:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1622641578; 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=CBaDUKnvJIg91/Bx09z1bIJ+o8IZg/K0bT1Oewi4xNs=; b=P/Z/l7s/hbZ2YlBOZhARGgwTd4zYlqeCvbBUVAvJ9yocnBR11hx4BBeqsOXCgJUB3uHDKB RxPDWv8+PpOOSL5SZif7MO2rS5qlWD7ubFERHbzTY9IFvQzQ/N16D8/5rBp0KUmLrGpL6N uDZgRby57WmwBd3Ijr1nnzO2sXdZ9i0= X-MC-Unique: zhEb_yy0MbWh4qiV6aZ7IQ-1 From: Kevin Wolf To: qemu-block@nongnu.org Subject: [PULL 09/20] block/file-posix: Try other fallbacks after invalid FALLOC_FL_ZERO_RANGE Date: Wed, 2 Jun 2021 15:45:18 +0200 Message-Id: <20210602134529.231756-10-kwolf@redhat.com> In-Reply-To: <20210602134529.231756-1-kwolf@redhat.com> References: <20210602134529.231756-1-kwolf@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kwolf@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com 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=kwolf@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -31 X-Spam_score: -3.2 X-Spam_bar: --- X-Spam_report: (-3.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.371, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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: kwolf@redhat.com, peter.maydell@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" From: Thomas Huth If fallocate(... FALLOC_FL_ZERO_RANGE ...) returns EINVAL, it's likely an indication that the file system is buggy and does not implement unaligned accesses right. We still might be lucky with the other fallback fallocate() calls later in this function, though, so we should not return immediately and try the others first. Since FALLOC_FL_ZERO_RANGE could also return EINVAL if the file descriptor is not a regular file, we ignore this filesystem bug silently, without printing an error message for the user. Signed-off-by: Thomas Huth Message-Id: <20210527172020.847617-3-thuth@redhat.com> Signed-off-by: Kevin Wolf --- block/file-posix.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/block/file-posix.c b/block/file-posix.c index 6e24083f3f..f37dfc10b3 100644 --- a/block/file-posix.c +++ b/block/file-posix.c @@ -1625,17 +1625,17 @@ static int handle_aiocb_write_zeroes(void *opaque) if (s->has_write_zeroes) { int ret =3D do_fallocate(s->fd, FALLOC_FL_ZERO_RANGE, aiocb->aio_offset, aiocb->aio_nbytes); - if (ret =3D=3D -EINVAL) { - /* - * Allow falling back to pwrite for file systems that - * do not support fallocate() for an unaligned byte range. - */ - return -ENOTSUP; - } - if (ret =3D=3D 0 || ret !=3D -ENOTSUP) { + if (ret =3D=3D -ENOTSUP) { + s->has_write_zeroes =3D false; + } else if (ret =3D=3D 0 || ret !=3D -EINVAL) { return ret; } - s->has_write_zeroes =3D false; + /* + * Note: Some file systems do not like unaligned byte ranges, and + * return EINVAL in such a case, though they should not do it acco= rding + * to the man-page of fallocate(). Thus we simply ignore this retu= rn + * value and try the other fallbacks instead. + */ } #endif =20 --=20 2.30.2