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 1D3A3C61DB3 for ; Thu, 12 Jan 2023 21:36:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8B6C78E0002; Thu, 12 Jan 2023 16:36:58 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 867818E0001; Thu, 12 Jan 2023 16:36:58 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 730428E0002; Thu, 12 Jan 2023 16:36:58 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 627E78E0001 for ; Thu, 12 Jan 2023 16:36:58 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 29425A01C0 for ; Thu, 12 Jan 2023 21:36:58 +0000 (UTC) X-FDA: 80347457316.28.593DFDB Received: from zeniv.linux.org.uk (zeniv.linux.org.uk [62.89.141.173]) by imf29.hostedemail.com (Postfix) with ESMTP id 754D5120002 for ; Thu, 12 Jan 2023 21:36:56 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=linux.org.uk header.s=zeniv-20220401 header.b=VSyLSFkr; dmarc=pass (policy=none) header.from=zeniv.linux.org.uk; spf=none (imf29.hostedemail.com: domain of viro@ftp.linux.org.uk has no SPF policy when checking 62.89.141.173) smtp.mailfrom=viro@ftp.linux.org.uk ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1673559416; h=from:from:sender: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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=ZfduQZL3IipZOIkF4Xgr0mmrYNl5QDr/+4i3sr5yPPM=; b=NdOip2u1JVP4aYupwd/qCzkL4jh+NvzU8mfnfeSMl3XULnNd/4MZVrBRk1VFu8D+XEl1I+ iR55MX46OIscZkdFoxlEYJyx6RfClGdzH3lt/gLM0ocBtgle2rXsJVw1ozH5VoUi93axr8 zek/M6MALmYT5ceYt7P6ffWgC0udO+0= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=linux.org.uk header.s=zeniv-20220401 header.b=VSyLSFkr; dmarc=pass (policy=none) header.from=zeniv.linux.org.uk; spf=none (imf29.hostedemail.com: domain of viro@ftp.linux.org.uk has no SPF policy when checking 62.89.141.173) smtp.mailfrom=viro@ftp.linux.org.uk ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1673559416; a=rsa-sha256; cv=none; b=eIpkRPlboZWveDCL59HwPip0qPExjMNQvM5bk/Lq0SGKm/zwqP12UnQ39FUO1A/X4q0zYB wJ4/az/ZfmwQTZsSJUFpQlyfMlOArHuSugSL3Py9mP8p8McG5Ye76Q8z4TpDiq7KrzcMhz YC9VXWLBmX66vJRqmGBVDaIvdIvr7zQ= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=linux.org.uk; s=zeniv-20220401; h=Sender:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=ZfduQZL3IipZOIkF4Xgr0mmrYNl5QDr/+4i3sr5yPPM=; b=VSyLSFkrZgZTtY1H+J7yxFySLS 33aG2/Gw3EE6z5TAtaH3HmstkAHm5A+8I9CerB8yz+myRTUTmOwJW+Ov+xoDnrqPxqJ1ab1kDrwuV EOxOOWeX3kwBU7wvfA09bfHrkIkZz6YmbNot5uCJtmMLGUj7qinB79/SDGpUDRz9X0Ph0LjOzdS4r VCswVD3Nhus7wE+4Fld3A8b1EME2jNeEZpbQJoLRX2scozFw7bFnX2X/c8MnHPAluWIfFKgJc+zKE fnFuY7phwZ6+K9l7ylohGtJUPwOzRdaOOn4GXY6oZ0RM0EQHlGmDu7+HWpsHpNHfMkJluKJ7i8yKn +Hv8pkEQ==; Received: from viro by zeniv.linux.org.uk with local (Exim 4.96 #2 (Red Hat Linux)) id 1pG5Fe-001YzP-17; Thu, 12 Jan 2023 21:36:46 +0000 Date: Thu, 12 Jan 2023 21:36:46 +0000 From: Al Viro To: David Howells Cc: Christoph Hellwig , John Hubbard , Matthew Wilcox , linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Christoph Hellwig , Jens Axboe , Jan Kara , Jeff Layton , Logan Gunthorpe , linux-block@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v5 4/9] iov_iter: Add a function to extract a page list from an iterator Message-ID: References: <167344725490.2425628.13771289553670112965.stgit@warthog.procyon.org.uk> <167344728530.2425628.9613910866466387722.stgit@warthog.procyon.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 754D5120002 X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: 7rmtdgezg6cdju9z918gn57goeyco5yr X-HE-Tag: 1673559416-201797 X-HE-Meta: U2FsdGVkX19Cy4cK7bSLbjpJfPDseV1xeI5elh5KMerWq935lWlZ7obMoKZImBDx8UfAOTb/gPvl4RCRFgmh9mw1wRxqOUaKA5p6+BVlBYfH1EkEa/6Av3bnVU7dlV7JqhdVn+Ua2/k7h7dzu8wbWLz6YlBKDrh5qRAQqE9hey/WngJlgEUcl0Fhx2cLZZBWjj293WSjAt1ZV5vQF8t7YJxX1ECzgEYI5xlh1+2ijCcmqbZOlpqbLTK/ONAAzewldfC1P82QvGIKlE32RqVLxjWffm3jt96hYEFxXTHMYkIeZGx0QakjpAYXVmqnCtFktn7tZkfT/K2XQ3MXz3hDTSmtD6HuIGsZQ4BqfHul4vQFq6EMs8tteJJy/3GiJwsp5KjFwnYennefm3PrzigZX+5Pt7YD/H/+ZBlEvtLHBGS901mvd50HFpUlb+3VeloWgQVjjfqp9MlcgeXBiKFeyXAdrZZ7+M14O1Thr+DcDp0UftZ78uBCQtbzrUcJOBdCZ5s4AamiEQ+T4kM59MVAXLsr/57hQd0p1bf/1e9v6PCR1fsczNu0NnB6j67sxTitxoJcRv1y6JNtWL5Gq4OjbL/Nx+pLCN4TGAZ7YIIrc6LLzBstWp3ueuA3RUZpO5s6JGrd2MzFip8d2aGOFcur8Ysfaj1AJBW09e5BwbzrmRTigy9Sp15/Jj6RxU/QUJsw77FHeqG6u9l8CLJ2ebwjq5H4P5hDqVJTLaoCqucJjHq2yr27MFQ/3W3uB8vwdc3RbK7tnSnMtHnOnxcu0wVF6mVPaMJEsCn5+cpZFd7rVroXNq2GkeqOoK9MuS1cNYfIx6wKii4hx/FBpw9peL1YUKBf+TmM4SWESiFK1JFNIQel5iF3pYqwih28FcdF6kzTJhr+nNQgBEveWEAEwFA2/hfNdBSJQZ3igI4PrgYoHCNzbjejsju0pnORm9wWSIeTGUvVQzqXZD67Rvr+eZa kEPrNV76 GkTqkTC57TaPWknDOzUPpzKSdHPnZgwJVOPHiXK/ioYqlioo+bpLZefYorufrS82/PZNmCjDcCCpu5OusZNDY0KhDArQI1pEuOuci5Yw2Z2nrhOP1xzVKG0CFA0p72/G+NgroFbRoyuVsmP8= 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 Thu, Jan 12, 2023 at 09:15:50PM +0000, Al Viro wrote: > On Wed, Jan 11, 2023 at 02:28:05PM +0000, David Howells wrote: > > > +ssize_t iov_iter_extract_pages(struct iov_iter *i, > > + struct page ***pages, > > + size_t maxsize, > > + unsigned int maxpages, > > + unsigned int gup_flags, > > + size_t *offset0, > > + unsigned int *cleanup_mode) > > This cleanup_mode thing is wrong. It's literally a trivial > function of ->user_backed and ->data_source - we don't > even need to look at the ->type. > > Separate it into an inline helper and be done with that; > don't carry it all over the place. > > It's really "if not user-backed => 0, otherwise it's FOLL_PIN or FOLL_GET, > depending upon the direction". Seriously, it would be easier to follow that way; if you really insist upon keeping these calling conventions, at least put the calculation in one place - don't make readers to chase down into every sodding helper to check if they do what you'd expect them to do.