Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp982761rwd; Wed, 7 Jun 2023 09:20:19 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4XX3I9KLggxmhe+DSAtdGH7a5L7z3xzLnhTzY89C6UYe31UqYySC63xs521I0MMEpH08Vj X-Received: by 2002:a05:6a20:7346:b0:10d:12a8:c95b with SMTP id v6-20020a056a20734600b0010d12a8c95bmr2110248pzc.0.1686154818702; Wed, 07 Jun 2023 09:20:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686154818; cv=none; d=google.com; s=arc-20160816; b=BManNjl14Hpi2UheO5bcU8cCCn1+VKWA3g0sIMp/NXqiwerldUqm5etETh0hLqFaIj y37V+xymtCz9ijWjp/kpCAK/a7HqRGs1EhhD4hGhBAR4DA2y9YZCOEbPkk4GipBWOd2P pWI4HslCtEQFHjXQ1ClMmmZVbociEe9PYw0BZw4QE4ZzKTiZI5Omhu1YFMCSAoVw/Z89 zKHQHs6Ifkr3y+KhhajIVaw1R4EChm+2jQGpPkQWxkUXxnvJeTzNV7Nx2kS38KBNiwZH Qc4hJ6KETQrsvfV4w/kUBdimsoK+MEMR+XdmrmG/PJ6yBpCFA9TuX7kKbbOtibkQ8MlY lzOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=afQPSzc3yF2P6Gyj9XEF07/hZuyAqwb1MSfDPmaFlck=; b=Lf6+E/Ye/3hCxFIJkVyYEoo/SGXvPAMXZu+UeOUFcRgwB7GOvM/ejAJw8ScibfYTHE V7cOyC69D8Owa+M5xeeHQqOWYgKvE9Nj30KBdsp/I3rCfgMePg7r+1KlndmnSawGdke6 DsFt6B5mOEySsMp/j42k3OonTmh3fp+nyatwUgOLNpZEtGKnVBfQNBYUglt4twS+ODWX NfkhWhsdY3iAGJUuYoij8tOyezCCzD4YqxXI4Uyr1F1d+wjJIrIJWWJFlV0jYU8+83S7 xashVS5OWZ/iyZ+1wGncDuLz+Q3wTtet7Lpohdtw4RaRgbLXRj2QlaUgHza33RKZYRFu x7Rw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amazon.com header.s=amazon201209 header.b=B0cd0RHJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s199-20020a632cd0000000b00543d32ee960si3697493pgs.594.2023.06.07.09.20.02; Wed, 07 Jun 2023 09:20:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amazon.com header.s=amazon201209 header.b=B0cd0RHJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236330AbjFGQF4 (ORCPT + 99 others); Wed, 7 Jun 2023 12:05:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35834 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241086AbjFGQFy (ORCPT ); Wed, 7 Jun 2023 12:05:54 -0400 Received: from smtp-fw-80008.amazon.com (smtp-fw-80008.amazon.com [99.78.197.219]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 220741BE8; Wed, 7 Jun 2023 09:05:48 -0700 (PDT) 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-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, T_SCC_BODY_TEXT_LINE,T_SPF_PERMERROR autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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, > };