Received: by 10.223.176.46 with SMTP id f43csp3377733wra; Mon, 22 Jan 2018 13:09:14 -0800 (PST) X-Google-Smtp-Source: AH8x226xQcSp1uJD4l0BRkPyHWRFLZATzrraPooFFUK6QMhReZrtE6y0FNYgcDuWi6oefhmJY4YM X-Received: by 10.36.120.136 with SMTP id p130mr219982itc.115.1516655354265; Mon, 22 Jan 2018 13:09:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516655354; cv=none; d=google.com; s=arc-20160816; b=OaWsXNVzT3lKbqTjfZQCKKX+tQx+jTV6zNt5i9GgNxP+1Oo5Vz1R8oeptut2BZc+LW ZNkdkeagowEDVuIcEzEaDVsmh/8o1U+Y67f99vwz0Ofqf2xlxdn5gwblSTX43zZskOZX O88yjWck5XI8gOZcTvGQ6/b4fbeMrm66kKYOIoG1FUWPE2SiEXkeWhoHvWiHPfww7omI EkjI/ayIEFikl36q9USNondH4CiCl8poM284I+Tz8aD9jA6aP3fhAjbRb5DLRGlFV9mb 2wDWl1pJDrkg0FuhObh6gukNTS6keZIihRyPJtJFLjHr7B8c0wGfbZDIo7+cBxGygEzU ZeCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:message-id:date:cc:to:from:subject :arc-authentication-results; bh=hLhyefMomTzn7BmKMbpf0mW7QcFJf0U/Vk/KKmvYV6U=; b=yU2PXitJ4pjqVInhuwl/UwH4FqSy3BdHkIv7Y7Hh6gj7owtvmPCt82pf2a+tor0/2v cGxZ90HncLAYihqnVk8QrRSmzeHRDvIjosVMyn1zlRs1apFhnmhCZrIJQQjRWqw8j603 ZPCWc2PnvuuhMcnoIBcU7DCZJ3lpFSTWrvagEUSZfcYpUYoozPsR/FxBljFqT+sJI1MA fzEHLlQAQn5Eg0yBf9EPDCuARlyEB5sxeR3NddKV69e/1mPS7aW3EFcfFc97oq6Zg8Yf mKWtHFb05D2noXSk7H5rRoKLVXjxvtWsTNTx3BMjTCK/Zh66W0vigkEdv8DUoD0HaH5x Jy5A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 3si6653139itk.31.2018.01.22.13.09.01; Mon, 22 Jan 2018 13:09:14 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751126AbeAVVIi (ORCPT + 99 others); Mon, 22 Jan 2018 16:08:38 -0500 Received: from 6.mo68.mail-out.ovh.net ([46.105.63.100]:44269 "EHLO 6.mo68.mail-out.ovh.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750878AbeAVVIh (ORCPT ); Mon, 22 Jan 2018 16:08:37 -0500 Received: from player698.ha.ovh.net (b7.ovh.net [213.186.33.57]) by mo68.mail-out.ovh.net (Postfix) with ESMTP id D5A80B9785 for ; Mon, 22 Jan 2018 22:02:20 +0100 (CET) Received: from bahia.lan (lns-bzn-46-82-253-208-248.adsl.proxad.net [82.253.208.248]) (Authenticated sender: groug@kaod.org) by player698.ha.ovh.net (Postfix) with ESMTPA id C32C252009E; Mon, 22 Jan 2018 22:02:11 +0100 (CET) Subject: [PATCH] 9p/trans_virtio: discard zero-length reply From: Greg Kurz To: v9fs-developer@lists.sourceforge.net Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, "David S. Miller" , "Michael S. Tsirkin" , Eric Van Hensbergen , Latchesar Ionkov , Ron Minnich Date: Mon, 22 Jan 2018 22:02:05 +0100 Message-ID: <151665492548.14372.18325892476788349632.stgit@bahia.lan> User-Agent: StGit/0.17.1-46-g6855-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Ovh-Tracer-Id: 5862560816358660486 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedtvddruddvgddugeekucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddm Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When a 9p request is successfully flushed, the server is expected to just mark it as used without sending a 9p reply (ie, without writing data into the buffer). In this case, virtqueue_get_buf() will return len == 0 and we must not report a REQ_STATUS_RCVD status to the client, otherwise the client will erroneously assume the request has not been flushed. Signed-off-by: Greg Kurz --- net/9p/trans_virtio.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c index 0845aad4ba51..ca08c72ef4de 100644 --- a/net/9p/trans_virtio.c +++ b/net/9p/trans_virtio.c @@ -171,7 +171,8 @@ static void req_done(struct virtqueue *vq) spin_unlock_irqrestore(&chan->lock, flags); /* Wakeup if anyone waiting for VirtIO ring space. */ wake_up(chan->vc_wq); - p9_client_cb(chan->client, req, REQ_STATUS_RCVD); + if (len) + p9_client_cb(chan->client, req, REQ_STATUS_RCVD); } }