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 92536C77B75 for ; Fri, 19 May 2023 16:31:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2CDC7280001; Fri, 19 May 2023 12:31:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 27C30900003; Fri, 19 May 2023 12:31:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 144D5280001; Fri, 19 May 2023 12:31:42 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 052E5900003 for ; Fri, 19 May 2023 12:31:42 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 8E03E120B04 for ; Fri, 19 May 2023 16:31:40 +0000 (UTC) X-FDA: 80807545560.12.A637CC4 Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) by imf21.hostedemail.com (Postfix) with ESMTP id 6CD091C0020 for ; Fri, 19 May 2023 16:31:38 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=dq70hQx9; dmarc=none; spf=pass (imf21.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.41 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684513898; 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=afFaOwVkDQVoLtMd5ERUW5Y+E5Lld4ra+zl50KIIzto=; b=2wUNQGWwUUULLs4xobx670YlfU8pUfctTVPeNlOqZWCMrpDVQoQ/vtxbKKAp0YZ4dGBkhF /meW29q1OIx4G8z4D7m+fShlqSSm0+x/o7XNKeW2mnXBAvxOVKi4uqp5zJO2SrNuIFIZfL HPvcLXbazqAFxrlRT2cbGoWAc01XX/o= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=dq70hQx9; dmarc=none; spf=pass (imf21.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.41 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684513898; a=rsa-sha256; cv=none; b=GZqwQBWX0ptikFQpxdlhdF7j4BEnOP6q1sp4A+8+3hvFJI431DASeMZJpnygsR57Hft+IN 8w8Wb3Da2y4nONiC/3rQvYoGZ0RRECokA7Ig3aJmIOFz8FlWAq0yYVitK3NPokQOv1neAX 5aqik8WO9kwOt3CVUYntbFFZw/bIaRk= Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-965b5f3b9ffso213419466b.0 for ; Fri, 19 May 2023 09:31:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1684513896; x=1687105896; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=afFaOwVkDQVoLtMd5ERUW5Y+E5Lld4ra+zl50KIIzto=; b=dq70hQx95mVYs1cSqin2E3FWtRPeAa4ACQhqA9azyRuOYWCM88pr0enzRMeh0/jk8T 7hSoHIByfAiBq9CrKKmgY+tILIy2ahj5ezRy4lWJM+IPBToCsj+OAxAfkYc6FIc7yrFR 4bac2pLnJw0twWu+dyZw4xV+O1m4wyp82M3/k= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684513896; x=1687105896; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=afFaOwVkDQVoLtMd5ERUW5Y+E5Lld4ra+zl50KIIzto=; b=g1/PRccyBVqr8Iqz6UfbM3bf+CyA5pt2nikCwQCWIfLDylOK0DMXzJ097YzMXxyRb1 l9ms4ZOLOi9wd26m9rRZwptBywrcOusMso7cJWvBzq4uPS85IIWTHpoLEUvB5yveKWix TYtuh5/wXwH7FNEPGsgQ+38u+rrJj/6F2OV88yns3LDp/gUkRXRBHnmGaziw6MknjSU+ g+0g1rcTGr72THMjv2EFCJ0ip41f8UzHfEfnmUmpg2verjidK25hcNIxCXToSUVt4ZBX A9HKCjci5J152GE0zhm7pPcIYkbmEPuH2wojLbv4hH+G2EGt3hMaTmKf3c3UwGSIWUa+ 9c0w== X-Gm-Message-State: AC+VfDzVJr6j7AeE7Tss6qFQFAWZ6l+x7Zljv7Ixl0FNuseMkBnWN3Co ru71qDWkryQ0k44atwgnXvKy0iaGWP22M2DkGekQt2Pp X-Google-Smtp-Source: ACHHUZ5S6V8L8+8EAXIimhxfvFretbh5wDQ0GWxFvbL8TGCf8EvALAWXVr6D168y8rQxcUxGsOYqCg== X-Received: by 2002:a17:907:ea5:b0:966:4e4c:a36d with SMTP id ho37-20020a1709070ea500b009664e4ca36dmr2379159ejc.20.1684513896253; Fri, 19 May 2023 09:31:36 -0700 (PDT) Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com. [209.85.208.49]) by smtp.gmail.com with ESMTPSA id la17-20020a170906ad9100b00965ab02b42csm2479133ejb.102.2023.05.19.09.31.34 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 19 May 2023 09:31:35 -0700 (PDT) Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-510d9218506so2103453a12.1 for ; Fri, 19 May 2023 09:31:34 -0700 (PDT) X-Received: by 2002:aa7:d7cd:0:b0:512:698d:34ac with SMTP id e13-20020aa7d7cd000000b00512698d34acmr65349eds.12.1684513894474; Fri, 19 May 2023 09:31:34 -0700 (PDT) MIME-Version: 1.0 References: <20230519074047.1739879-1-dhowells@redhat.com> <20230519074047.1739879-4-dhowells@redhat.com> In-Reply-To: <20230519074047.1739879-4-dhowells@redhat.com> From: Linus Torvalds Date: Fri, 19 May 2023 09:31:17 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v20 03/32] splice: Make direct_read_splice() limit to eof where appropriate To: David Howells Cc: Jens Axboe , Al Viro , Christoph Hellwig , Matthew Wilcox , Jan Kara , Jeff Layton , David Hildenbrand , Jason Gunthorpe , Logan Gunthorpe , Hillf Danton , Christian Brauner , linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Christoph Hellwig Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: 96r4goidx39nx5sttrtpkn96ya8eq3uk X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 6CD091C0020 X-HE-Tag: 1684513898-120439 X-HE-Meta: U2FsdGVkX1+O3B9lT75/OlncAhjN77wMerqp4qAj1u9bGYgtRIsHMRpZsOfWew9lGMhPqpT8Ilc1PC3ziHH/JwAGJF+mVH+dpPV7GGGogjbzF3DJHCooLtP+9V3PVEb3DYIa/reHHFr/aySMP86neBJFufv0cMD6YFP/zlx+rSUBhY6fZOqGrt+vgBhj4FTp37AvJkcTulFzpiab7dw1Lx9R+NkNYCGQ/etr6J1WFVvY3XGY/bJPWzGvRi5UK+MrPUlzoFHg1ryaht1R1POHvMfe1Mz7Ham8XdXYk4Ra+KmFId6hlOEl9SNPcEGbz/f8sRLdX3sMb9RcvQkoVSwX5JZtk/dhbzkFWH2TFDnM/GAlKIk10x4bwA48FTNtSBb3guLMFST7oA+WLix2JCgpGIJsLz/PF3C2OVuAJr6zfTRtNjpjsKw15EGZQEOG00qb/KNv7RCjlKKBG45DPYxLsW0hax2o1b8JCJXDzHi6ryqEd6+gkRXAufSBSrLr0xKPqoCTkcoI0KyIoEI/stkO/1uk7TIdHChbprVsH07aoPk1hWRuXNz1VWgERfMM734L6tIeES70lr/JF2+08fn3He+migow7RpeGeKz3+QCz9o+PFOsjwNgJ+pi/uaTNJUY8gWZG/uSHH/sAxDW2q07XVxPndU8JHydAgyygeMb+dfd/CSD70RWDHvXaVPI6cZMOY7QYnVusqKp73FZ2N2pLgC9PcYqvFct9cKqCoBFdsNzVZaAKgemrVwiBGpGglAMhnW5ccP671xIorUv51Fn6tJ5U0BdoBN59Lk4bFjut714a662tq9EbMI+yYQeVc1bdlDVvJ59OCRdy4HjMSVHfYRmtqxwj++DB3csipD5+FrcLyjc7GqzPVrHTpNj4lZWnFLdC2alWNXB9ZF5VWY/NvRsSpiKbZOAZgecpFLHjBHMkh9B5G7CCyz8M70BRhzVud+qbiH+la5KLh/j1QM 4wsqNPg/ xe1SKBlKjp9OPNQP5cTPv18zFunAMn2XAhsXkVcjU1wzXPSH5V6+VQGSVtofew7x2heI2C/SXrKTBofjFxTb3TclpjUITHBqZZEBcshflGCuFPxDhYczqvOmgiD/Hhn62L9/dOGyHTLnWSMcUF3Pi0IneruS4cHSSo8CBBwM93LAjLXlWomKS59AfggLBOHGvpOsTHnIFBgzYBqLad4AIHHJKO/ByLQo1+8fX7QhoJ7WOXLpDan9zQGtrCvPRhPmKeGlOtGIqw7oECz353jVA/JAr7tbq9sz8I7LOt5bXUznOyEKw1qwYFbPGUdQqT+x1/kb21BtqbqiDBXvEiwtvltxpF6ztDJmNaY/MKGVOsCQyH2FQVuSxx0PqAx8V9P/eCXWlh7WEFSGC22cbllBLWrliIKYxKJa9LnqUsKN39PXPNJMo+iXnAzsEsGmQ/RU33TUSvOiSR8QQk7arQG3RhYHbgbPg9iQNInxdN3MVoKQqr9zfGe6XrZuU59O/Zr0kx3zDH2VS2fA+8xDl417zukMxtwWVN9f5wNfn7wSdLtUcpced1d/+thriCaV5VL1PWao0OVCjE/PHG/0IJS7faPnE/xXpSWfzsBDs 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: On Fri, May 19, 2023 at 12:41=E2=80=AFAM David Howells wrote: > > + > + if (S_ISREG(file_inode(in)->i_mode) || > + S_ISBLK(file_inode(in)->i_mode)) { This really feels fundamentally wrong to me. If block and regular files have this limit, they should have their own splice_read() function that implements that limit. Not make everybody else check it. IOW, this should be a separate function ("block_splice_read()" or whatever), not inside a generic function that other users use. The zero size checking looks fine, although I wondered about that too. Some special files do traditionally have special meanings for zero-sized reads (as in "packet boundary"). But I suspect that isn't an issue for splice, and perhaps more importantly, I think the same rule should be in place: special files that want special rules shouldn't be using this generic function directly then. Linus