Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp2353285pxv; Sat, 24 Jul 2021 13:28:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxyJOcdGPx6+QtYqGcorT09ydfUPTrnGJIgLNSfh//pL31ZsYxR3PdWRm1/7vVERb5PFP4V X-Received: by 2002:a5d:8744:: with SMTP id k4mr8913249iol.10.1627158482506; Sat, 24 Jul 2021 13:28:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627158482; cv=none; d=google.com; s=arc-20160816; b=WESL5DpoJGNkKSVGQXEFZTAY9qXf5Gwnsuq3/8PsyyETsQ01CA9fXP7+Jxpd1mAvpZ I+o7iYUY8DAuF9ImxE7LQvHE7x+zXqT3Rf5t31K0Uv14Htm6AAS6Xx4VSJLPgkymqcNH JXF8RPu+GYu8EQ7SnL4h9bCWG3QDiq7ekBN9x+gkvsdbpcaYohwpJhz6v3ZWCJi9mq3O H3J67//iJ2EL7WbW63aek0VZl6xe2VWGiJ5PVzRkijeyrxl+tEjJ39JWwvkdwfHOKbTV aeWZIkXl0r2ZpJ1Tz2tyHKAtHSGSXHbWOwu7Kj664DskzUIzLcLClz3ZEhm8mfA7jPlg MOdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=xoMvFqTFaAsuRgpG/VfXDX6N/LgI/C1heutVZQ+ChiY=; b=Ai6BKQHCQcv/oIcv/BAD3TXShUjAShe7zNwdKcNbQjYFjSGbDVrV9h8XChWJmNRXEM 6r1PxIn2YbHPnASX/C6r2WSodYaPoOkx8Hi/j5OS+jgBmq6oYXSz87a1IsVZOfhvZebM N2hKqweLvRJaJH2fo93PlGOnZXa2IiOilytcbn92a/z+j9OGWth/x+TX8bmEsR0lCi2z V5fmFdT7iC9/XAdD7Cxtth9dfLoxCBiKR8uTeLqcdtpuYYir43tLaIRXeGBGsGaJ1HTt b0h2Plg5gi+B77K2u+9iiXs+NDhqxEKpamGF2yoXfqO8DZk6FNKqvDNIlJ5Axw2dgdvS Rhzg== ARC-Authentication-Results: i=1; mx.google.com; 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 w12si38471483ilv.127.2021.07.24.13.27.50; Sat, 24 Jul 2021 13:28:02 -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; 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 S229665AbhGXTqC (ORCPT + 99 others); Sat, 24 Jul 2021 15:46:02 -0400 Received: from zeniv-ca.linux.org.uk ([142.44.231.140]:47568 "EHLO zeniv-ca.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229508AbhGXTqC (ORCPT ); Sat, 24 Jul 2021 15:46:02 -0400 Received: from viro by zeniv-ca.linux.org.uk with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1m7OC1-003eaC-FU; Sat, 24 Jul 2021 20:24:17 +0000 Date: Sat, 24 Jul 2021 20:24:17 +0000 From: Al Viro To: Linus Torvalds Cc: Andreas Gruenbacher , Christoph Hellwig , "Darrick J. Wong" , Jan Kara , Matthew Wilcox , cluster-devel , linux-fsdevel , Linux Kernel Mailing List , ocfs2-devel@oss.oracle.com Subject: Re: [PATCH v4 1/8] iov_iter: Introduce iov_iter_fault_in_writeable helper Message-ID: References: <20210724193449.361667-1-agruenba@redhat.com> <20210724193449.361667-2-agruenba@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: Al Viro Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Jul 24, 2021 at 12:52:34PM -0700, Linus Torvalds wrote: > ... > > + if (fault_in_user_pages(start, len, true) != len) > > + return -EFAULT; > > Looking at this once more, I think this is likely wrong. > > Why? > > Because any user can/should only care about at least *part* of the > area being writable. > > Imagine that you're doing a large read. If the *first* page is > writable, you should still return the partial read, not -EFAULT. Agreed. > So I think the code needs to return 0 if _any_ fault was successful. s/any/the first/... The same goes for fault-in for read, of course; I've a half-baked conversion to such semantics (-EFAULT vs. 0; precise length is unreliable anyway, especially if you have sub-page failure areas), need to finish and post it...