From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1F212C77B7A for ; Wed, 7 Jun 2023 16:06:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 83C158E0001; Wed, 7 Jun 2023 12:06:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7C3BD6B0075; Wed, 7 Jun 2023 12:06:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 664768E0001; Wed, 7 Jun 2023 12:06:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 5115C6B0074 for ; Wed, 7 Jun 2023 12:06:49 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id D9CCF1C7013 for ; Wed, 7 Jun 2023 16:06:48 +0000 (UTC) X-FDA: 80876430096.24.C2BD98E Received: from smtp-fw-80008.amazon.com (smtp-fw-80008.amazon.com [99.78.197.219]) by imf14.hostedemail.com (Postfix) with ESMTP id E0A991000BD for ; Wed, 7 Jun 2023 16:05:48 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=amazon.com header.s=amazon201209 header.b=B0cd0RHJ; spf=pass (imf14.hostedemail.com: domain of "prvs=515fb1b91=kuniyu@amazon.co.jp" designates 99.78.197.219 as permitted sender) smtp.mailfrom="prvs=515fb1b91=kuniyu@amazon.co.jp"; dmarc=pass (policy=quarantine) header.from=amazon.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686153949; h=from:from:sender: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:dkim-signature; bh=afQPSzc3yF2P6Gyj9XEF07/hZuyAqwb1MSfDPmaFlck=; b=W04JAOvqgpX+YUGYr3Gyxv7Ikf1Oy0b456lBb4mRbi65anfxVz8nvR5yD3XafJKZuJCevp v1j/BvIfZIlHBlblayzNGWpgL9QQpnfhpxP19kY/M1G3pG1XvWmSoCZgvUMeZd+GlDzKst 0kWqNYLNkEpgQj2XEu4yZKejvSpE5aQ= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686153949; a=rsa-sha256; cv=none; b=bvkaTvlagKavRz/nkEBMmQJ/pl6X6fIcYuKbk5ycyoSMF3HwFPm6uBXhj9BIxGbBecVK0J DPJevbEXgBO98Qi8n34N3uTUrDHyp6i4tZ2B/idxggiyTEoPfgNu8/V/n3ULr7FhMYw1Nn nTym3CpkxWdwpeOjR7auFdSQN8IY/O8= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=amazon.com header.s=amazon201209 header.b=B0cd0RHJ; spf=pass (imf14.hostedemail.com: domain of "prvs=515fb1b91=kuniyu@amazon.co.jp" designates 99.78.197.219 as permitted sender) smtp.mailfrom="prvs=515fb1b91=kuniyu@amazon.co.jp"; dmarc=pass (policy=quarantine) header.from=amazon.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1686153948; x=1717689948; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=afQPSzc3yF2P6Gyj9XEF07/hZuyAqwb1MSfDPmaFlck=; b=B0cd0RHJVRt5IIou1ic8NNkoZWiEZrbZwTs69y4ZdUxxPqcR/Re4sQ+P tR820YIH8WtixqEytbq2ybieZQ7Or61GClwN4QGdWcQyAcrjsPbxiR6Rf EfSNPjRhNbPHogt+o6I6PbMbiEUvbvhoKVlA7m42A58ctm6ggRL+x6ABl 4=; X-IronPort-AV: E=Sophos;i="6.00,224,1681171200"; d="scan'208";a="8765929" Received: from pdx4-co-svc-p1-lb2-vlan2.amazon.com (HELO email-inbound-relay-pdx-2b-m6i4x-7fa2de02.us-west-2.amazon.com) ([10.25.36.210]) by smtp-border-fw-80008.pdx80.corp.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jun 2023 16:05:45 +0000 Received: from EX19MTAUWB002.ant.amazon.com (pdx1-ws-svc-p6-lb9-vlan3.pdx.amazon.com [10.236.137.198]) by email-inbound-relay-pdx-2b-m6i4x-7fa2de02.us-west-2.amazon.com (Postfix) with ESMTPS id 5BF1D413CA; Wed, 7 Jun 2023 16:05:42 +0000 (UTC) Received: from EX19D004ANA001.ant.amazon.com (10.37.240.138) by EX19MTAUWB002.ant.amazon.com (10.250.64.231) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Wed, 7 Jun 2023 16:05:40 +0000 Received: from 88665a182662.ant.amazon.com (10.119.185.127) by EX19D004ANA001.ant.amazon.com (10.37.240.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Wed, 7 Jun 2023 16:05:36 +0000 From: Kuniyuki Iwashima To: CC: , , , , , , , , , , , , , , , , , , Subject: Re: [PATCH net-next v5 09/14] kcm: Use splice_eof() to flush Date: Wed, 7 Jun 2023 09:05:28 -0700 Message-ID: <20230607160528.20078-1-kuniyu@amazon.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230607140559.2263470-10-dhowells@redhat.com> References: <20230607140559.2263470-10-dhowells@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.119.185.127] X-ClientProxiedBy: EX19D038UWB003.ant.amazon.com (10.13.139.157) To EX19D004ANA001.ant.amazon.com (10.37.240.138) X-Stat-Signature: hcnuzt3uawgwkb9hx4r7xxbfkryxs1er X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: E0A991000BD X-Rspam-User: X-HE-Bulk: true X-HE-Tag: 1686153948-458390 X-HE-Meta: U2FsdGVkX1/Z0tg8y+ispQBVEguuNfHdOjet1lY8ok66SyuquVb0Um2fSCfE7dtV7LieTYsPrShsfFaGXsV5vjjpuUKy9mIuDlMPk0i1NLH4iUeh8RdKFvFg1VSiL6+cTC/q3VivlcKggNDrdVw2bO/mSCCKoFsswkwkKnONSW+EJGmmvaJCrU/hWlxVhblxg+IDQm5dKRvHGHDT4FC13CCUPTmpfL89q0KZPCx5lSzCob4aLhO6GZKsYGmYpwm6fHuZrvjVmsnFHtwJZDbvJQ8zBWRiSJTcIMf/UE3Khlal8ncv0Q0KpMATOiqn/OLYF26jZZ1+EE3XGdOs/xeGP4OzRsj93YOg3FY6+WmAL6CyCUKuBD0g8PP40EObiDBa1FjcuDyjX12Ylxs8ni7KmKrct8etniuOrncjZRwqHzGYVSYRcFb2FVGXqW0szqBEw6j0srcZwSG9Ja8KCRmGdsB7jSD+Nu3LwI13Cz2UnE+damKwgZUexcUlSX14pzWGB9+niPtpm/9+biQ/z/mkN7ACi6+3t3BKXks1QM4gzk43RMQvFIRCBHbwZdn2aKlV7op7ZqjkQodIUtHZyeqoh6P7Da54yK8dOeSZZ+kSov/KsgQiERcOPM+JuyaCP/kGmP3KC57mRDb3Ft3Ddf3Uo+6fHNwO2DIRU/GeucyxQVGRr2xb9vYwtkXx/MfL0+SoFy6+fpLFzyKdHgX91ezocXBLLBPp2QE2GVZh1Hf+QWNpENd5aojcJ25h4h0UCKzb29aEMtEo7pzz8Q9DkivKz3hBCBsxJe/Tf6sQ9TP/ZdZQ5CsimxiGHP0toJ0fKHB07+7aoGteZRfFcRVDr1Hz2VtwjFfRLuOgzlPAf8Z3hMkGDA299SMU91jKBFVEuquL6XQTOcwMEMPE4ZG5rGJB2P8G0079Uf9jupor3TSKPD0clqEeAW/vhsfBFHdMcuQ8zV8FS50ZDM6SckDQIhm djnpXGTS so7GVYXYRAlsBmDmJBmHwTDkF32WllzVSoCulJs8Qc/g7Bd1MQefNZhSrnWNzMv94WNOXtQi0w0w46v5BdaORr39ItPRl9Hj9TNwzYEn2c/UUeB6UNH4ZTXDYUaJAemVhAm2bhV7eVwVq88OjU8yCcPn7jmCR6r93j6zcqI4pTOAIcDa3aJ+v9v6k/oz1JJ09twH0MuKtkz3s0OBf0aBHo3fDmcyDzIq1EBJDWfsL2k2/ZVC9FdpNsMaymB81bg0AEt+5rgwT0ViszJgDsZpXKGz8DCyi4sK1HdoGxzX6l8PcVqvpUe90SsNAvTy7RZxfFNJrIJU09Im5tTxSbll3MTwK9xFycvA3oy1EnqB3yclfUVWQ5oTSyfp0ycubwI57AzRih82Ee0L4l/KT1kRXyKRf7EM69ZWWVm1woCbrzUBsuNnr4ytSQC5pxVtdz8KPmL2/PaLvHI1US9xDYWRFRAVtCAEU5yYcPOJ5cGuP4qpuGAMj5koUb2d4PdxgMkxA1sGgm5NvYgK6pn49WGv/h05mvXnB2159fddmGwlPmf0gx/lYE3fqrNFTGeckC616c6/4ih5MGn8sp6ful+6gS/4BsdTStqtCETY5AcOx0iCLqDWM1xQXl4TFpH/7c4eH/wx61TqWP7ikoVKfKCFV0i4ImbKXFM9R5ZThGY2pAqqss6Ola67alAwM7u4oY+XmulcyIoqaW248OtM94SyhDRyZKSlt2xBtJWrNFSfQbmIelkJQxd30RJMJVjHsuyuHeZ2INOqJQxP6ZEl1yTFQbSo7ulFTl1V1OwneyizcIRWdBYVgsIp7p9e/f/r2s+reQPb+cyCiYXRENqivrPRkRnW/8O+kw3NxGVVRfOqe0BnML7pnKv5kZGz9Z+xvu0khf96zm//Oi+Yc02sRmsmvu686S+YMu7nWN+8aJwg/QZzlaBxIdtT7MrQBR6bUG23ucCZ+LLp1P9AeLFohRO2yelFqgh28 jdxO9l05 tOYCL4fhwSh6C/emQCjaHOCGsiGm+GKUxb0WkfPbewLoyRb7A/Lfyz+YK1CxwMPg5GYobR0Q4nas7gE/nP5R3GxGPdsbs5TVfdm8X7POvruvFaQ0okCT2ohswk4v9qgbFoLEZi3YVoif7GF7kAMqbORTGgY3gQ04OIl5Nt2C3NX1cGx3aRccx/hrOoLtHcAe X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: David Howells Date: Wed, 7 Jun 2023 15:05:54 +0100 > Allow splice to undo the effects of MSG_MORE after prematurely ending a > splice/sendfile due to getting an EOF condition (->splice_read() returned > 0) after splice had called sendmsg() with MSG_MORE set when the user didn't > set MSG_MORE. > > Suggested-by: Linus Torvalds > Link: https://lore.kernel.org/r/CAHk-=wh=V579PDYvkpnTobCLGczbgxpMgGmmhqiTyE34Cpi5Gg@mail.gmail.com/ > Signed-off-by: David Howells > cc: Tom Herbert > cc: Tom Herbert > cc: Cong Wang > cc: Jakub Kicinski > cc: Eric Dumazet > cc: "David S. Miller" > cc: Paolo Abeni > cc: Jens Axboe > cc: Matthew Wilcox > cc: netdev@vger.kernel.org > --- > net/kcm/kcmsock.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/net/kcm/kcmsock.c b/net/kcm/kcmsock.c > index ba22af16b96d..d0d8c54562d6 100644 > --- a/net/kcm/kcmsock.c > +++ b/net/kcm/kcmsock.c > @@ -968,6 +968,19 @@ static int kcm_sendmsg(struct socket *sock, struct msghdr *msg, size_t len) > return err; > } > > +static void kcm_splice_eof(struct socket *sock) > +{ > + struct sock *sk = sock->sk; > + struct kcm_sock *kcm = kcm_sk(sk); > + > + if (skb_queue_empty(&sk->sk_write_queue)) nit: would be better to use skb_queue_empty_lockless(). > + return; > + > + lock_sock(sk); > + kcm_write_msgs(kcm); > + release_sock(sk); > +} > + > static ssize_t kcm_sendpage(struct socket *sock, struct page *page, > int offset, size_t size, int flags) > > @@ -1773,6 +1786,7 @@ static const struct proto_ops kcm_dgram_ops = { > .sendmsg = kcm_sendmsg, > .recvmsg = kcm_recvmsg, > .mmap = sock_no_mmap, > + .splice_eof = kcm_splice_eof, > .sendpage = kcm_sendpage, > }; > > @@ -1794,6 +1808,7 @@ static const struct proto_ops kcm_seqpacket_ops = { > .sendmsg = kcm_sendmsg, > .recvmsg = kcm_recvmsg, > .mmap = sock_no_mmap, > + .splice_eof = kcm_splice_eof, > .sendpage = kcm_sendpage, > .splice_read = kcm_splice_read, > };