From nobody Sun Feb 8 18:08:50 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=1620769170; cv=none; d=zohomail.com; s=zohoarc; b=QJFGoVh0dZe+/lKzDRj5nBkWuHaXkuK2CYOQFIN2LX4vCtQ5pMpNe3jayhoIonhwVJ35rKA2RKOVlfnAD7ueaTIBdpQu+CSEcltPe0zI3mO5E+QpqSWvS7Khkgu/oOfYBOUJJHqkD87V7UGZYZP8IU+kym3zEw0k/RtZD2EfwzU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620769170; 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=X9CcE5kn7RgoBbY7fupgfSqEC6p7xulIyZ+PZe0IDn0=; b=DPz6K0hgdbNyI+aaIahA/aoNkwmt7uJTNHI5QRxwtkmun9ISump5vBy9ux2sA85BmFQNSNX9oZcN0vbIsdlgvurp46FoWx+eRiV+wNV9lbRkiGJ20ZKdMriFmDPbAuLJdPa2c4TEvtC73buYE54oBB4RzUqFx46MkYuKDcJidyY= 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 1620769170698169.03491824755054; Tue, 11 May 2021 14:39:30 -0700 (PDT) Received: from localhost ([::1]:49936 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lga6C-0001WS-L2 for importer@patchew.org; Tue, 11 May 2021 17:39:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51068) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lga4f-0007MT-Ol for qemu-devel@nongnu.org; Tue, 11 May 2021 17:37:53 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:37095) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lga4d-0005tS-Fn for qemu-devel@nongnu.org; Tue, 11 May 2021 17:37:53 -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-576-0AI0KfCvPi6unF1nHEl6Qg-1; Tue, 11 May 2021 17:37:48 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 402478015D0 for ; Tue, 11 May 2021 21:37:47 +0000 (UTC) Received: from horse.redhat.com (ovpn-115-221.rdu2.redhat.com [10.10.115.221]) by smtp.corp.redhat.com (Postfix) with ESMTP id C9D025D9E3; Tue, 11 May 2021 21:37:43 +0000 (UTC) Received: by horse.redhat.com (Postfix, from userid 10451) id 3D8FF223D99; Tue, 11 May 2021 17:37:43 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620769070; 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=X9CcE5kn7RgoBbY7fupgfSqEC6p7xulIyZ+PZe0IDn0=; b=A3d0QAlhNzZBdSD59v7nCEbOb/5rt2E0LoA1t9BGSu7O0jwUWzGPUMCUbJDlhHhzq5HZIA Bt9gYjp0+474LJUZef/WnnVmyQaYJJ0yYFCbuBiKgUey25WhJDXo+MKuLVdfIi2OR32r3I ji0a60xw+5WMuthyYPFmJznDuSBz31c= X-MC-Unique: 0AI0KfCvPi6unF1nHEl6Qg-1 From: Vivek Goyal To: qemu-devel@nongnu.org, virtio-fs@redhat.com Subject: [PATCH 1/7] virtiofsd: Check for EINTR in preadv() and retry Date: Tue, 11 May 2021 17:37:30 -0400 Message-Id: <20210511213736.281016-2-vgoyal@redhat.com> In-Reply-To: <20210511213736.281016-1-vgoyal@redhat.com> References: <20210511213736.281016-1-vgoyal@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=vgoyal@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=170.10.133.124; envelope-from=vgoyal@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.699, 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=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: dgilbert@redhat.com, vgoyal@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" We don't seem to check for EINTR and retry. There are other places in code where we check for EINTR. So lets add a check. Signed-off-by: Vivek Goyal Reviewed-by: Connor Kuehl Reviewed-by: Dr. David Alan Gilbert --- tools/virtiofsd/fuse_virtio.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/virtiofsd/fuse_virtio.c b/tools/virtiofsd/fuse_virtio.c index 1170f375a5..32914f7e95 100644 --- a/tools/virtiofsd/fuse_virtio.c +++ b/tools/virtiofsd/fuse_virtio.c @@ -421,6 +421,9 @@ int virtio_send_data_iov(struct fuse_session *se, struc= t fuse_chan *ch, =20 if (ret =3D=3D -1) { ret =3D errno; + if (ret =3D=3D EINTR) { + continue; + } fuse_log(FUSE_LOG_DEBUG, "%s: preadv failed (%m) len=3D%zd\n", __func__, len); goto err; --=20 2.25.4 From nobody Sun Feb 8 18:08:50 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=1620769310; cv=none; d=zohomail.com; s=zohoarc; b=VGDiZhl2IO+AwChF8xhc+9rEb1GQ0o9EvDvGLGCVcSHcZwaGXEORsvtNsYvTidhh3Rs75PwgyKbQ2F3Cb7tugOwHOIPH0O3jxbpuLy0Pokis/sqciGU68bhMJuh4W8BE7rqdJt6XeJlo0WD3cN9JU0cAdU8t3lrZex/vs+Ukzsg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620769310; 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=UGS/2Mrg64jg532EjeIMu5B4QnOmsl0KcW1Ak1wu4rE=; b=BlJlax8zTHHmLFXrwW/zPR6awr36TxcylhHDKHZlYV13PYjd5AOCdqwItADW2vSmj1nIcHGx2C10dH4y+eyZxhbWyhZrdoovSB5yXzuaa59c2nH4CIY9EFg9nYkcKVOsAL7E5hzjQsaB9E/6vdqfJCxg6C7ybukLAoVHR0X0Ecw= 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 1620769310926854.8572734361093; Tue, 11 May 2021 14:41:50 -0700 (PDT) Received: from localhost ([::1]:57428 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lga8T-0006lb-TY for importer@patchew.org; Tue, 11 May 2021 17:41:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51088) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lga4h-0007Nn-Io for qemu-devel@nongnu.org; Tue, 11 May 2021 17:37:55 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:58734) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lga4d-0005sq-BY for qemu-devel@nongnu.org; Tue, 11 May 2021 17:37:55 -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-564-15pVkTtZNM2iPE3JsaopUA-1; Tue, 11 May 2021 17:37:47 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2D434107ACCD for ; Tue, 11 May 2021 21:37:47 +0000 (UTC) Received: from horse.redhat.com (ovpn-115-221.rdu2.redhat.com [10.10.115.221]) by smtp.corp.redhat.com (Postfix) with ESMTP id C55B06A033; Tue, 11 May 2021 21:37:43 +0000 (UTC) Received: by horse.redhat.com (Postfix, from userid 10451) id 41B96225FCE; Tue, 11 May 2021 17:37:43 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620769069; 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=UGS/2Mrg64jg532EjeIMu5B4QnOmsl0KcW1Ak1wu4rE=; b=UgumRU/0coP6irqXsnlH5Iuryvc0m24QAr5O2Z8uwiAn2NdrwYAnn/nd7MczEPbMT/IlJ0 xZ/SBwliAlG0VGHOGEIf3+EX4xI9t+zllbLLFMP+d49jUlpoH9rk/5WJnV+Kw3a58A5mc2 wk8Dp9/s4a4GiUmZwjzmSAYTHdoK7EM= X-MC-Unique: 15pVkTtZNM2iPE3JsaopUA-1 From: Vivek Goyal To: qemu-devel@nongnu.org, virtio-fs@redhat.com Subject: [PATCH 2/7] virtiofsd: Get rid of unreachable code in read Date: Tue, 11 May 2021 17:37:31 -0400 Message-Id: <20210511213736.281016-3-vgoyal@redhat.com> In-Reply-To: <20210511213736.281016-1-vgoyal@redhat.com> References: <20210511213736.281016-1-vgoyal@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=vgoyal@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=170.10.133.124; envelope-from=vgoyal@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.699, 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=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: dgilbert@redhat.com, vgoyal@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" pvreadv() can return following. - error - 0 in case of EOF - short read We seem to handle all the cases already. We are retrying read in case of short read. So another check for short read seems like dead code. Get rid of it. Signed-off-by: Vivek Goyal Reviewed-by: Connor Kuehl Reviewed-by: Dr. David Alan Gilbert --- tools/virtiofsd/fuse_virtio.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tools/virtiofsd/fuse_virtio.c b/tools/virtiofsd/fuse_virtio.c index 32914f7e95..5dcd08fccb 100644 --- a/tools/virtiofsd/fuse_virtio.c +++ b/tools/virtiofsd/fuse_virtio.c @@ -446,11 +446,6 @@ int virtio_send_data_iov(struct fuse_session *se, stru= ct fuse_chan *ch, in_sg_left); break; } - if (ret !=3D len) { - fuse_log(FUSE_LOG_DEBUG, "%s: ret!=3Dlen\n", __func__); - ret =3D EIO; - goto err; - } in_sg_left -=3D ret; len -=3D ret; } while (in_sg_left); --=20 2.25.4 From nobody Sun Feb 8 18:08:50 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=1620769170; cv=none; d=zohomail.com; s=zohoarc; b=g5DasZXqLe3pdlCHyoO93J3yrw9l7KPeWwwUNDC3vqwPjOSDAUV7dlDX0b9aNuhHZz+m9D5lDOYrCf+O6guun/L+40lPX7La3OSxCk3GTi7RbiDPrdbQEcwSAqnG1qkvdzZ4iA2LR2yGRHq2o26rxh4FuSUh5qNB33qp1kukjiE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620769170; 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=PCqw1KRSIxu8BfBco+eNjqr0c/L/FZCMOAxIgy9bAyY=; b=FQEQwBHh8Rwzll6tKnrUN2T21DE9WIW2PGJUnE6L+G4aHslFTpi16eo7r1T2i2zidodg7OLWFSSSEwj8966BmXunvruurqzXsBIb6f2eRPGgjGuDnnT/g1aOA3Q+y6RbnbYLVe96bil+TV4uiPPl+9regJJGjwqoEkK/+UCoNnE= 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 1620769170618443.05645424782335; Tue, 11 May 2021 14:39:30 -0700 (PDT) Received: from localhost ([::1]:50004 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lga6D-0001Zy-A2 for importer@patchew.org; Tue, 11 May 2021 17:39:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51066) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lga4f-0007MS-Qr for qemu-devel@nongnu.org; Tue, 11 May 2021 17:37:53 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:30774) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lga4d-0005tA-BM for qemu-devel@nongnu.org; Tue, 11 May 2021 17:37:53 -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-524-eLd8P5EwM2G2daKmD3s5cw-1; Tue, 11 May 2021 17:37:47 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 34E5E107ACE3 for ; Tue, 11 May 2021 21:37:47 +0000 (UTC) Received: from horse.redhat.com (ovpn-115-221.rdu2.redhat.com [10.10.115.221]) by smtp.corp.redhat.com (Postfix) with ESMTP id C570718024; Tue, 11 May 2021 21:37:43 +0000 (UTC) Received: by horse.redhat.com (Postfix, from userid 10451) id 47009225FCF; Tue, 11 May 2021 17:37:43 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620769069; 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=PCqw1KRSIxu8BfBco+eNjqr0c/L/FZCMOAxIgy9bAyY=; b=MiHu5OYNzduXtnen4d6VamgYFEItzIIyXoGM2fwvdqQnFaWXrhPkE7VwxXBLchPAI7NoAX gtQN66OTyix/I8lgh8io9o8pS80U1OQaycAE0MucGxFq4v+qX24PKlav2MAFIyiIFuDjYp lxulAdeUJEh6nh20BirLFgchFvjR8d0= X-MC-Unique: eLd8P5EwM2G2daKmD3s5cw-1 From: Vivek Goyal To: qemu-devel@nongnu.org, virtio-fs@redhat.com Subject: [PATCH 3/7] virtiofsd: Use iov_discard_front() to skip bytes Date: Tue, 11 May 2021 17:37:32 -0400 Message-Id: <20210511213736.281016-4-vgoyal@redhat.com> In-Reply-To: <20210511213736.281016-1-vgoyal@redhat.com> References: <20210511213736.281016-1-vgoyal@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=vgoyal@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=170.10.133.124; envelope-from=vgoyal@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.699, 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=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: dgilbert@redhat.com, vgoyal@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" There are places where we need to skip few bytes from front of the iovec array. We have our own custom code for that. Looks like iov_discard_front() can do same thing. So use that helper instead. Signed-off-by: Vivek Goyal Reviewed-by: Connor Kuehl Reviewed-by: Dr. David Alan Gilbert --- tools/virtiofsd/fuse_virtio.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/tools/virtiofsd/fuse_virtio.c b/tools/virtiofsd/fuse_virtio.c index 5dcd08fccb..d56b225800 100644 --- a/tools/virtiofsd/fuse_virtio.c +++ b/tools/virtiofsd/fuse_virtio.c @@ -389,23 +389,15 @@ int virtio_send_data_iov(struct fuse_session *se, str= uct fuse_chan *ch, memcpy(in_sg_cpy, in_sg, sizeof(struct iovec) * in_num); /* These get updated as we skip */ struct iovec *in_sg_ptr =3D in_sg_cpy; - int in_sg_cpy_count =3D in_num; + unsigned int in_sg_cpy_count =3D in_num; =20 /* skip over parts of in_sg that contained the header iov */ size_t skip_size =3D iov_len; =20 size_t in_sg_left =3D 0; do { - while (skip_size !=3D 0 && in_sg_cpy_count) { - if (skip_size >=3D in_sg_ptr[0].iov_len) { - skip_size -=3D in_sg_ptr[0].iov_len; - in_sg_ptr++; - in_sg_cpy_count--; - } else { - in_sg_ptr[0].iov_len -=3D skip_size; - in_sg_ptr[0].iov_base +=3D skip_size; - break; - } + if (skip_size !=3D 0) { + iov_discard_front(&in_sg_ptr, &in_sg_cpy_count, skip_size); } =20 int i; --=20 2.25.4 From nobody Sun Feb 8 18:08:50 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=1620769310; cv=none; d=zohomail.com; s=zohoarc; b=ZHS+XX2NBIgID0H1EWMJ1T3/CrU+kVCLsTc6/jlsK95ra6jN+o7NWeow/uLHIxhkNTri1S3GWgjxTs1gv76ZB+7lD6J6U9oCOQoKu6phaRcxGXmAwy1JTTh3ZTQQWQQGUzeUQbNJRtXSYVf0OQ0TDvftQtN7+UwQyMPP/3Y5wOk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620769310; 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=ELxBNUvrnK70yQHi9ncYnnmAF8jZ25Va3X75XDKT1yE=; b=FJaCPfYtsEEXuboYJUp4cdWDuR26nBGcfqknHozHk8XSlYaahlZtk/14ARWvkO+mM2kDq+vuQ2UcnzBj1/J2EeA9ebFwvpG/tR/ftU34nE/ALCY4V/9I2qo4mmGMW1WKFRubuPhOhn7Oy9rUgTUiM66wpjjWWjnnWVcvdFTefO8= 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 162076931076863.973103426826015; Tue, 11 May 2021 14:41:50 -0700 (PDT) Received: from localhost ([::1]:57416 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lga8T-0006l2-Px for importer@patchew.org; Tue, 11 May 2021 17:41:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51072) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lga4f-0007MU-Q9 for qemu-devel@nongnu.org; Tue, 11 May 2021 17:37:53 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:59402) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lga4d-0005t8-Bp for qemu-devel@nongnu.org; Tue, 11 May 2021 17:37:53 -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-19-tJwkaXAcOQ6LEot6ZP0G7g-1; Tue, 11 May 2021 17:37:48 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 432E6106BAA9 for ; Tue, 11 May 2021 21:37:47 +0000 (UTC) Received: from horse.redhat.com (ovpn-115-221.rdu2.redhat.com [10.10.115.221]) by smtp.corp.redhat.com (Postfix) with ESMTP id C57305D9D7; Tue, 11 May 2021 21:37:43 +0000 (UTC) Received: by horse.redhat.com (Postfix, from userid 10451) id 4C642225FD0; Tue, 11 May 2021 17:37:43 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620769069; 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=ELxBNUvrnK70yQHi9ncYnnmAF8jZ25Va3X75XDKT1yE=; b=eFj3UbjRkwhmEjVvDkqawCHJ59cVnuadoAMMdVwleyzwdLpI9Rai8Q+5zvQE/VaBziRmLe NrmzSA+gYozS6l7rNYhAla2+yZbSzGCX+OsM6P622bExjJBbk8Mf2r6mMbWYuYfAy+3ihP WFvAB1eJzo4bsYljNuA7YtDVQiGaq0k= X-MC-Unique: tJwkaXAcOQ6LEot6ZP0G7g-1 From: Vivek Goyal To: qemu-devel@nongnu.org, virtio-fs@redhat.com Subject: [PATCH 4/7] virtiofsd: get rid of in_sg_left variable Date: Tue, 11 May 2021 17:37:33 -0400 Message-Id: <20210511213736.281016-5-vgoyal@redhat.com> In-Reply-To: <20210511213736.281016-1-vgoyal@redhat.com> References: <20210511213736.281016-1-vgoyal@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=vgoyal@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=vgoyal@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.699, 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=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: dgilbert@redhat.com, vgoyal@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" in_sg_left seems to be being used primarly for debugging purpose. It is keeping track of how many bytes are left in the scatter list we are reading into. We already have another variable "len" which keeps track how many bytes are left to be read. And in_sg_left is greater than or equal to len. We have already ensured that in the beginning of function. if (in_len < tosend_len) { fuse_log(FUSE_LOG_ERR, "%s: elem %d too small for data len %zd\n", __func__, elem->index, tosend_len); ret =3D E2BIG; goto err; } So in_sg_left seems like a redundant variable. It probably was useful for debugging when code was being developed. Get rid of it. It helps simplify this function. Signed-off-by: Vivek Goyal Reviewed-by: Connor Kuehl Reviewed-by: Dr. David Alan Gilbert --- tools/virtiofsd/fuse_virtio.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/tools/virtiofsd/fuse_virtio.c b/tools/virtiofsd/fuse_virtio.c index d56b225800..ccad2b3f8a 100644 --- a/tools/virtiofsd/fuse_virtio.c +++ b/tools/virtiofsd/fuse_virtio.c @@ -394,20 +394,16 @@ int virtio_send_data_iov(struct fuse_session *se, str= uct fuse_chan *ch, /* skip over parts of in_sg that contained the header iov */ size_t skip_size =3D iov_len; =20 - size_t in_sg_left =3D 0; do { if (skip_size !=3D 0) { iov_discard_front(&in_sg_ptr, &in_sg_cpy_count, skip_size); } =20 - int i; - for (i =3D 0, in_sg_left =3D 0; i < in_sg_cpy_count; i++) { - in_sg_left +=3D in_sg_ptr[i].iov_len; - } fuse_log(FUSE_LOG_DEBUG, "%s: after skip skip_size=3D%zd in_sg_cpy_count=3D%d " - "in_sg_left=3D%zd\n", - __func__, skip_size, in_sg_cpy_count, in_sg_left); + "len remaining=3D%zd\n", __func__, skip_size, in_sg_cpy_c= ount, + len); + ret =3D preadv(buf->buf[0].fd, in_sg_ptr, in_sg_cpy_count, buf->buf[0].pos); =20 @@ -434,13 +430,12 @@ int virtio_send_data_iov(struct fuse_session *se, str= uct fuse_chan *ch, } if (!ret) { /* EOF case? */ - fuse_log(FUSE_LOG_DEBUG, "%s: !ret in_sg_left=3D%zd\n", __func= __, - in_sg_left); + fuse_log(FUSE_LOG_DEBUG, "%s: !ret len remaining=3D%zd\n", __f= unc__, + len); break; } - in_sg_left -=3D ret; len -=3D ret; - } while (in_sg_left); + } while (len); =20 /* Need to fix out->len on EOF */ if (len) { --=20 2.25.4 From nobody Sun Feb 8 18:08:50 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=1620769171; cv=none; d=zohomail.com; s=zohoarc; b=W6mFylVKN1XCIa4hEQQnr3v0+/LYIwdBMLT0OcHGCWL8fJRFxVjtrCJG6Saw3sGOkXMkf2Qv0lvfaH13bZbqvBcar+KV1O34/HpI3SOtaD3pL0PyaBXdEh7DAd9JqSorzWHin5OhUNkjaOKoSbraBx0l0uviaBMqxXWb7uMRtgQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620769171; 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=CijRO4JS5NXE0airXkt/GzHEVDw5bRvQGeBh4XaQ974=; b=X7BJsupNIITgi7kwPMA/hxe+dTILkglp+fjmkcR2e8ATWZbzp7Joh1t64uMIZ3zpTJ5hted8zl9Ti7MISswckpjCxvhB/xwrW3D4m4VeDE+or0dydEbnecc1uDWXY1AX3qiD+5PRkPN/Z34UizpkWQDtCVrgUyKS08UaJ4mOf1I= 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 1620769171028524.4707657185188; Tue, 11 May 2021 14:39:31 -0700 (PDT) Received: from localhost ([::1]:50082 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lga6E-0001cw-0U for importer@patchew.org; Tue, 11 May 2021 17:39:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51058) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lga4f-0007MR-Od for qemu-devel@nongnu.org; Tue, 11 May 2021 17:37:53 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:29509) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lga4d-0005tO-B7 for qemu-devel@nongnu.org; Tue, 11 May 2021 17:37:52 -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-566-70EycKckPISiDnHSG90tmA-1; Tue, 11 May 2021 17:37:48 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B21F0106BAAA for ; Tue, 11 May 2021 21:37:47 +0000 (UTC) Received: from horse.redhat.com (ovpn-115-221.rdu2.redhat.com [10.10.115.221]) by smtp.corp.redhat.com (Postfix) with ESMTP id 96D2D60938; Tue, 11 May 2021 21:37:47 +0000 (UTC) Received: by horse.redhat.com (Postfix, from userid 10451) id 514CA225FD1; Tue, 11 May 2021 17:37:43 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620769070; 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=CijRO4JS5NXE0airXkt/GzHEVDw5bRvQGeBh4XaQ974=; b=IXgI/f083wReZGDd4knT46f/1j835PKASciOV74viKNqkqjFf3twc/bYNiJzpAGhO4rtgM NWk1oYd/xWi2d2I19pJHRA5oZps+4ztQ9XE/Xp5g0tZXwqiaE/Tj8TCyy3flMGqUmNVe3O aDxtSGHXYK/yfm/NfH9Cwep6BulAqsI= X-MC-Unique: 70EycKckPISiDnHSG90tmA-1 From: Vivek Goyal To: qemu-devel@nongnu.org, virtio-fs@redhat.com Subject: [PATCH 5/7] virtiofsd: Simplify skip byte logic Date: Tue, 11 May 2021 17:37:34 -0400 Message-Id: <20210511213736.281016-6-vgoyal@redhat.com> In-Reply-To: <20210511213736.281016-1-vgoyal@redhat.com> References: <20210511213736.281016-1-vgoyal@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=vgoyal@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=170.10.133.124; envelope-from=vgoyal@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.699, 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=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: dgilbert@redhat.com, vgoyal@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" We need to skip bytes in two cases. a. Before we start reading into in_sg, we need to skip iov_len bytes in the beginning which typically will have fuse_out_header. b. If preadv() does a short read, then we need to retry preadv() with remainig bytes and skip the bytes preadv() read in short read. For case a, there is no reason that skipping logic be inside the while loop. Move it outside. And only retain logic "b" inside while loop. Also get rid of variable "skip_size". Looks like we can do without it. Signed-off-by: Vivek Goyal Reviewed-by: Connor Kuehl Reviewed-by: Dr. David Alan Gilbert --- tools/virtiofsd/fuse_virtio.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/tools/virtiofsd/fuse_virtio.c b/tools/virtiofsd/fuse_virtio.c index ccad2b3f8a..434fe401cf 100644 --- a/tools/virtiofsd/fuse_virtio.c +++ b/tools/virtiofsd/fuse_virtio.c @@ -392,17 +392,11 @@ int virtio_send_data_iov(struct fuse_session *se, str= uct fuse_chan *ch, unsigned int in_sg_cpy_count =3D in_num; =20 /* skip over parts of in_sg that contained the header iov */ - size_t skip_size =3D iov_len; + iov_discard_front(&in_sg_ptr, &in_sg_cpy_count, iov_len); =20 do { - if (skip_size !=3D 0) { - iov_discard_front(&in_sg_ptr, &in_sg_cpy_count, skip_size); - } - - fuse_log(FUSE_LOG_DEBUG, - "%s: after skip skip_size=3D%zd in_sg_cpy_count=3D%d " - "len remaining=3D%zd\n", __func__, skip_size, in_sg_cpy_c= ount, - len); + fuse_log(FUSE_LOG_DEBUG, "%s: in_sg_cpy_count=3D%d len remaining= =3D%zd\n", + __func__, in_sg_cpy_count, len); =20 ret =3D preadv(buf->buf[0].fd, in_sg_ptr, in_sg_cpy_count, buf->buf[0].pos); @@ -421,7 +415,7 @@ int virtio_send_data_iov(struct fuse_session *se, struc= t fuse_chan *ch, if (ret < len && ret) { fuse_log(FUSE_LOG_DEBUG, "%s: ret < len\n", __func__); /* Skip over this much next time around */ - skip_size =3D ret; + iov_discard_front(&in_sg_ptr, &in_sg_cpy_count, ret); buf->buf[0].pos +=3D ret; len -=3D ret; =20 --=20 2.25.4 From nobody Sun Feb 8 18:08:50 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=1620769192; cv=none; d=zohomail.com; s=zohoarc; b=A/Y6M6PvX/CyXQ0R73cI1GMimWvpcJUxQwcH01Yp7dZ/dFyzikmmvwaSDmixR18IUkH1nh4KOaHINwvRhtkj9o/VQPcDnvxIoxPSqpPBkwFJ4sb9+VD76YOWaZRNqt8Fahf3QqXIH2Iag8QLiEo6ymJJLcKzKaqxScPOJEdUQRc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620769192; 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=cL1WEfKepQlLzmmLve0HJY68rlVR1MwsjyvgpvASs9k=; b=i7ve5Yhcm6mCcQsPxNQNstKuw8LxrPtvDn+rt1F5x3j66B9ecgHh6Ji7s2n+iZIkQx4nqJ7dX7uSpMRu5nRza9rFZ70xa5TwteCQM7Z8M1qufBNMYorc6d83ueO6q/myb5DU7pfkoBaYB8O950D8YLFgu0+Dgh9/KtecZIF5lcI= 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 1620769192281192.27972878048467; Tue, 11 May 2021 14:39:52 -0700 (PDT) Received: from localhost ([::1]:50396 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lga6Y-0001q4-Vh for importer@patchew.org; Tue, 11 May 2021 17:39:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51102) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lga4j-0007TU-8P for qemu-devel@nongnu.org; Tue, 11 May 2021 17:37:57 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:36572) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lga4h-0005wa-HV for qemu-devel@nongnu.org; Tue, 11 May 2021 17:37:56 -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-572-27zqZE4eORyKf2K4VGUwmA-1; Tue, 11 May 2021 17:37:53 -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 32BBE18BA293 for ; Tue, 11 May 2021 21:37:52 +0000 (UTC) Received: from horse.redhat.com (ovpn-115-221.rdu2.redhat.com [10.10.115.221]) by smtp.corp.redhat.com (Postfix) with ESMTP id 96F8B60C04; Tue, 11 May 2021 21:37:47 +0000 (UTC) Received: by horse.redhat.com (Postfix, from userid 10451) id 5626C225FD2; Tue, 11 May 2021 17:37:43 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620769074; 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=cL1WEfKepQlLzmmLve0HJY68rlVR1MwsjyvgpvASs9k=; b=UpDcSBZ3VZLRW3LkjU35FeZBrXOM0rw9g7DGee6mzGwcUrS/mIlve36FpDxHCJVhh3rfqJ pg2UA7n5eVcdNM+jHVq3qKcQbnoXB7xtFzjAyKcDp2HxdGRgSf0/TnNfNX6fYEnDzuzCae CNxN8zigzBK0ALbCaNuJjeWm0ZiW0yw= X-MC-Unique: 27zqZE4eORyKf2K4VGUwmA-1 From: Vivek Goyal To: qemu-devel@nongnu.org, virtio-fs@redhat.com Subject: [PATCH 6/7] virtiofsd: Check EOF before short read Date: Tue, 11 May 2021 17:37:35 -0400 Message-Id: <20210511213736.281016-7-vgoyal@redhat.com> In-Reply-To: <20210511213736.281016-1-vgoyal@redhat.com> References: <20210511213736.281016-1-vgoyal@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=vgoyal@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=170.10.133.124; envelope-from=vgoyal@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.699, 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=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: dgilbert@redhat.com, vgoyal@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" In virtio_send_data_iov() we are checking first for short read and then EOF condition. Change the order. Basically check for error and EOF first and last remaining piece is short ready which will lead to retry automatically at the end of while loop. Just that it is little simpler to read to the code. There is no need to call "continue" and also one less call of "len-=3Dret". Signed-off-by: Vivek Goyal Reviewed-by: Connor Kuehl Reviewed-by: Dr. David Alan Gilbert --- tools/virtiofsd/fuse_virtio.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/tools/virtiofsd/fuse_virtio.c b/tools/virtiofsd/fuse_virtio.c index 434fe401cf..aa53808ef9 100644 --- a/tools/virtiofsd/fuse_virtio.c +++ b/tools/virtiofsd/fuse_virtio.c @@ -410,25 +410,24 @@ int virtio_send_data_iov(struct fuse_session *se, str= uct fuse_chan *ch, __func__, len); goto err; } - fuse_log(FUSE_LOG_DEBUG, "%s: preadv ret=3D%d len=3D%zd\n", __func= __, - ret, len); - if (ret < len && ret) { - fuse_log(FUSE_LOG_DEBUG, "%s: ret < len\n", __func__); - /* Skip over this much next time around */ - iov_discard_front(&in_sg_ptr, &in_sg_cpy_count, ret); - buf->buf[0].pos +=3D ret; - len -=3D ret; =20 - /* Lets do another read */ - continue; - } if (!ret) { /* EOF case? */ fuse_log(FUSE_LOG_DEBUG, "%s: !ret len remaining=3D%zd\n", __f= unc__, len); break; } + fuse_log(FUSE_LOG_DEBUG, "%s: preadv ret=3D%d len=3D%zd\n", __func= __, + ret, len); + len -=3D ret; + /* Short read. Retry reading remaining bytes */ + if (len) { + fuse_log(FUSE_LOG_DEBUG, "%s: ret < len\n", __func__); + /* Skip over this much next time around */ + iov_discard_front(&in_sg_ptr, &in_sg_cpy_count, ret); + buf->buf[0].pos +=3D ret; + } } while (len); =20 /* Need to fix out->len on EOF */ --=20 2.25.4 From nobody Sun Feb 8 18:08:50 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=1620769462; cv=none; d=zohomail.com; s=zohoarc; b=WD8m70lQLTuNrmI0dBrUGzNiAPm2f7EEhabr2yUCVEyeJKEsd7XDfTVIz2nnWWgrmZq1LCRdpHa4PiYAmqKoyQ7lZx8tn3DYejbwZxX3cb03CZ0zsA+swhoTEBkJInZj9jYQyNgQmd390r1OUZ8/hpfsZHlOVLWtxDep03sOOtM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620769462; 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=2gpkrlfYhWbKua0KgA74KB0q/VqUvlO+CWSauL1U9nc=; b=folpavqd2XCrOs9hIehH4QK5HHJKPgCTIJojYvQwj6GS6F5AUbqpsucWoF868LvsTHx7lGCHgMzjEn8YPAeNE2G6qUCl0Orj7IniqWBf8IOO+wa7wZWzCXsOu4RqzR6913WA3FahI63FCspY9cV1raGb+Dbs3zC8t0JU6AgX23U= 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 1620769461999298.6346888753792; Tue, 11 May 2021 14:44:21 -0700 (PDT) Received: from localhost ([::1]:34942 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lgaAu-0002Ok-Vi for importer@patchew.org; Tue, 11 May 2021 17:44:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:51092) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lga4h-0007OM-Qn for qemu-devel@nongnu.org; Tue, 11 May 2021 17:37:55 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:53799) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lga4g-0005vl-CE for qemu-devel@nongnu.org; Tue, 11 May 2021 17:37:55 -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-174-B67vJGs3M36cO3uHU2p8YQ-1; Tue, 11 May 2021 17:37:52 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 487446D5D6 for ; Tue, 11 May 2021 21:37:51 +0000 (UTC) Received: from horse.redhat.com (ovpn-115-221.rdu2.redhat.com [10.10.115.221]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9F15F40AC; Tue, 11 May 2021 21:37:47 +0000 (UTC) Received: by horse.redhat.com (Postfix, from userid 10451) id 61FD6225FD3; Tue, 11 May 2021 17:37:43 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620769073; 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=2gpkrlfYhWbKua0KgA74KB0q/VqUvlO+CWSauL1U9nc=; b=NHvihcQcW84ofHEXWkI/VmfCFrvKjBgdA34gpzOh1c3swZKha42rlPiL7j0hnYINUMbwR6 fAOUM4zqPVn1t5hs9+FexuZLddNtckOI6xBnSfIvrhzKVWQim8XRbcEVxF/jHvAlAlDQHg ay9aJixoBSUAOwoV1yjtxilb8hWNpEA= X-MC-Unique: B67vJGs3M36cO3uHU2p8YQ-1 From: Vivek Goyal To: qemu-devel@nongnu.org, virtio-fs@redhat.com Subject: [PATCH 7/7] virtiofsd: Set req->reply_sent right after sending reply Date: Tue, 11 May 2021 17:37:36 -0400 Message-Id: <20210511213736.281016-8-vgoyal@redhat.com> In-Reply-To: <20210511213736.281016-1-vgoyal@redhat.com> References: <20210511213736.281016-1-vgoyal@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=vgoyal@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=170.10.133.124; envelope-from=vgoyal@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.699, 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=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: dgilbert@redhat.com, vgoyal@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" There is no reason to set it in label "err". We should be able to set it right after sending reply. It is easier to read. Signed-off-by: Vivek Goyal Reviewed-by: Connor Kuehl --- tools/virtiofsd/fuse_virtio.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tools/virtiofsd/fuse_virtio.c b/tools/virtiofsd/fuse_virtio.c index aa53808ef9..b1767dd5b9 100644 --- a/tools/virtiofsd/fuse_virtio.c +++ b/tools/virtiofsd/fuse_virtio.c @@ -446,12 +446,9 @@ int virtio_send_data_iov(struct fuse_session *se, stru= ct fuse_chan *ch, vu_queue_notify(dev, q); pthread_mutex_unlock(&qi->vq_lock); vu_dispatch_unlock(qi->virtio_dev); + req->reply_sent =3D true; =20 err: - if (ret =3D=3D 0) { - req->reply_sent =3D true; - } - return ret; } =20 --=20 2.25.4