Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp3786712ybz; Mon, 4 May 2020 09:40:59 -0700 (PDT) X-Google-Smtp-Source: APiQypKGHHudM+2Wa0pVOil04NmKOvc09eBx8bfKyNM++hYmHcakMn9kajwQ64ZEvjp2q3Rcovr2 X-Received: by 2002:a17:906:cf8a:: with SMTP id um10mr15298780ejb.60.1588610459431; Mon, 04 May 2020 09:40:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588610459; cv=none; d=google.com; s=arc-20160816; b=ZwH8w52Tu22CAGsH/LoInbq8RRUeYD4KIPc8oybbW9SiVXCHFBZY11iGMl0W+Zp3TK xUcEhoZkO8nim7pvkoR0Z+o+NcjWWV2Wno4fYVlME7ljLUPkByQ4zSrFALsFJ6cpZ2h+ I7Tjh1AjWnHBYWRcRvF/7cLsl0UHXYQZi8KpjF0hiHJFCvFXVI+v4iRsOfu5Ug9Ce34S CWPgXKNheNpqVva3sWGSsZgRXcgbIe3aBCj2qEXi+15W3t9mCJnrcdYiFcnioLTvHg0K W4hdKfaIUatto4SNYCqn5n1Lfy6qrrO1M5193XFmoED6j5yL5x2aTcjjL/jPQ0bNUYGe 1c5Q== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature; bh=JxAAIfpNpwUCd+S1KM1zaeEL93agwMn4YypEzGqkuLU=; b=ET+rMOjp5+7qwN6yQtOmjfGix2q9w6wLHTJrQl/2fXkIKEFcjATP0bwzLbI5OwRxEp 0yOMXBNQMUWpDhnH1NLpmA9SqCGrFlbL4m7UZzdOiX8GJgc3v0ZblmMOFiHCoPZW6rXj ifeCzzUSgGNCgYPE96S0IlPYh+GD1/usJmlORAFhKUetjDbCKQbHiirwlwGmQAb7OFEe atEFiVQAIKPcyUJM/d5oSCZnyfKjQk6UK8e/uzH9g+n8yP4FdCedXVxoyObx0HwslMPz 5KkvPG0EENg0Bvh5S2FSGgxxOgegBZzugRN6Ek8sGolBaKD8Dpz+hbZXvfGSJxG+03Jq N0LQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b="VVj/pe9h"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r10si6847069edo.480.2020.05.04.09.40.36; Mon, 04 May 2020 09:40:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b="VVj/pe9h"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729720AbgEDQjF (ORCPT + 99 others); Mon, 4 May 2020 12:39:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44130 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729459AbgEDQjE (ORCPT ); Mon, 4 May 2020 12:39:04 -0400 Received: from mail-io1-xd44.google.com (mail-io1-xd44.google.com [IPv6:2607:f8b0:4864:20::d44]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 796D5C061A10 for ; Mon, 4 May 2020 09:39:04 -0700 (PDT) Received: by mail-io1-xd44.google.com with SMTP id y26so95569ioj.2 for ; Mon, 04 May 2020 09:39:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=JxAAIfpNpwUCd+S1KM1zaeEL93agwMn4YypEzGqkuLU=; b=VVj/pe9h31jZ9BC24zr31t7JCOHFyRPQCPAJ025ajEZUYPlNXC1EkSQGzSMVxKi5oa 1Zgby5Qev6yCDDxpfQLG6b/661M0PgEWnmU9MrLotQfY10WXkJzYIQNPqosjalo8aArv tfjsb0eG51dJVWpuSwEnrRgXCMGi0o9rsSCQ6zTg9XEiVTRNF5c5e6Rn1lpQG+lWDJP6 9aSmP+x/s3ru63ux946NstDrfuFHMZl76CuJGq8sK22vBuaQtQh858u8D9c8cDyhcLYv QfhTXLQcTA6KQ9OWgZ3U13kBdvv9wYYtXFm1FHuZ3J4I/EjIGZHGDe29oBPhYEJ9dR6g 92RA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=JxAAIfpNpwUCd+S1KM1zaeEL93agwMn4YypEzGqkuLU=; b=KEOAipTYCr5RdXxqzhpac1aW8MXWFO/sM8IqdmWXyyOuEktilLE9JN7Xwk6gy8fEsd P3OAIxECKEXXwS4ZMjWvLA8aVON3wFGDUuqWFlStfJmHvCh4nhmjCRfrh+tF2tvhZ+yA l2rffs6+mz3B06tic47TdOyFfo9vZWODbXO7SrXXCxQGx7TgdidjyG5zZDs7rRNmMci4 VnxMRnNY1c9LxibFPTNUeqZBLBp89F8kEdV9NiWxLrSyAyIin62PQJJ4E+XxgvvlyajI F2HV/O4Ie/A3VTkBLsGlbs4CuMv0hErnlv4+lhne6K4NZuWyxQq3l6jUwnV1Mu93aOk7 Oyrg== X-Gm-Message-State: AGi0PualQvf41CJHZQVbWZSzH8WYm8Eaap6O2gbiUwz0jjHNpliTONhj YNdiwooQQNl1sUJ7jEU/GiC1Yw== X-Received: by 2002:a6b:8dd7:: with SMTP id p206mr16019607iod.205.1588610343525; Mon, 04 May 2020 09:39:03 -0700 (PDT) Received: from [192.168.1.159] ([65.144.74.34]) by smtp.gmail.com with ESMTPSA id 200sm5466388ila.27.2020.05.04.09.39.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 04 May 2020 09:39:02 -0700 (PDT) Subject: Re: [PATCH 1/2] splice: export do_tee() To: Pavel Begunkov , Jann Horn Cc: io-uring , kernel list , Alexander Viro , linux-fsdevel , Clay Harris References: <56e9c3c84e5dbf0be8272b520a7f26b039724175.1588421219.git.asml.silence@gmail.com> <387c1e30-cdb0-532b-032e-6b334b9a69fa@gmail.com> <1007c4ff-2af0-1473-a268-a0ae245d8188@gmail.com> <9d43b5b5-577b-bc44-1667-fdd2055e63d7@gmail.com> From: Jens Axboe Message-ID: Date: Mon, 4 May 2020 10:39:01 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <9d43b5b5-577b-bc44-1667-fdd2055e63d7@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 5/4/20 10:36 AM, Pavel Begunkov wrote: > On 04/05/2020 17:03, Pavel Begunkov wrote: >> On 04/05/2020 16:43, Jens Axboe wrote: >>> On 5/4/20 6:31 AM, Pavel Begunkov wrote: >>>> On 04/05/2020 14:09, Jann Horn wrote: >>>>> On Sat, May 2, 2020 at 2:10 PM Pavel Begunkov wrote: >>>>>> export do_tee() for use in io_uring >>>>> [...] >>>>>> diff --git a/fs/splice.c b/fs/splice.c >>>>> [...] >>>>>> * The 'flags' used are the SPLICE_F_* variants, currently the only >>>>>> * applicable one is SPLICE_F_NONBLOCK. >>>>>> */ >>>>>> -static long do_tee(struct file *in, struct file *out, size_t len, >>>>>> - unsigned int flags) >>>>>> +long do_tee(struct file *in, struct file *out, size_t len, unsigned int flags) >>>>>> { >>>>>> struct pipe_inode_info *ipipe = get_pipe_info(in); >>>>>> struct pipe_inode_info *opipe = get_pipe_info(out); >>>>> >>>>> AFAICS do_tee() in its current form is not something you should be >>>>> making available to anything else, because the file mode checks are >>>>> performed in sys_tee() instead of in do_tee(). (And I don't see any >>>>> check for file modes in your uring patch, but maybe I missed it?) If >>>>> you want to make do_tee() available elsewhere, please refactor the >>>>> file mode checks over into do_tee(). >>>> >>>> Overlooked it indeed. Glad you found it >>> >>> Yeah indeed, that's a glaring oversight on my part too. Will you send >>> a patch for 5.7-rc as well for splice? >> >> Absolutely > > The right way would be to do as Jann proposed, but would you prefer an > io_uring.c local fix for-5.7 and then a proper one? I assume it could > be easier to manage. Let's just do a proper one for 5.7 as well. -- Jens Axboe