cluster-devel.redhat.com archive mirror
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [RFC v6 04/10] iomap: Add iomap_get_folio helper
Date: Thu, 12 Jan 2023 00:41:17 -0800	[thread overview]
Message-ID: <Y7/HrZCARD9zRvEe@infradead.org> (raw)
In-Reply-To: <20230111205241.GA360264@dread.disaster.area>

On Thu, Jan 12, 2023 at 07:52:41AM +1100, Dave Chinner wrote:
> Exposing internal implementation details in the API
> that is supposed to abstract away the internal implementation
> details from users doesn't seem like a great idea to me.

While I somewhat agree with the concern of leaking the xarray
internals, at least they are clearly documented and easy to find..

> Exactly what are we trying to fix here?  Do we really need to punch
> a hole through the abstraction layers like this just to remove half
> a dozen lines of -slow path- context specific error handling from a
> single caller?

While the current code (which is getting worse with your fix) leaks
completely undocumented and internal decision making.  So what this
fixes is a real leak of internatal logic inside of __filemap_get_folio
into the callers.

So as far as I'm concerned we really do need the helper, and anyone
using !GFP_CREATE or FGP_NOWAIT should be using it.  The only question
to me is if exposing the xarray internals is worth it vs the
less optimal calling conventions of needing an extra argument for
the error code.


  reply	other threads:[~2023-01-12  8:41 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-08 19:40 [Cluster-devel] [RFC v6 00/10] Turn iomap_page_ops into iomap_folio_ops Andreas Gruenbacher
2023-01-08 19:40 ` [Cluster-devel] [RFC v6 01/10] iomap: Add __iomap_put_folio helper Andreas Gruenbacher
2023-01-08 19:40 ` [Cluster-devel] [RFC v6 02/10] iomap/gfs2: Unlock and put folio in page_done handler Andreas Gruenbacher
2023-01-08 19:40 ` [Cluster-devel] [RFC v6 03/10] iomap: Rename page_done handler to put_folio Andreas Gruenbacher
2023-01-08 19:40 ` [Cluster-devel] [RFC v6 04/10] iomap: Add iomap_get_folio helper Andreas Gruenbacher
2023-01-08 21:33   ` Dave Chinner
2023-01-09 12:46   ` Andreas Gruenbacher
2023-01-10  8:46     ` Christoph Hellwig
2023-01-10  9:07       ` Andreas Grünbacher
2023-01-10 13:34       ` Matthew Wilcox
2023-01-10 15:24         ` Christoph Hellwig
2023-01-11 19:36           ` Matthew Wilcox
2023-01-11 20:52             ` Dave Chinner
2023-01-12  8:41               ` Christoph Hellwig [this message]
2023-01-15 17:01         ` Darrick J. Wong
2023-01-15 17:06           ` Darrick J. Wong
2023-01-16  5:46             ` Matthew Wilcox
2023-01-16  7:34               ` Christoph Hellwig
2023-01-16 13:18                 ` Matthew Wilcox
2023-01-16 16:02                   ` Christoph Hellwig
2023-01-08 19:40 ` [Cluster-devel] [RFC v6 05/10] iomap/gfs2: Get page in page_prepare handler Andreas Gruenbacher
2023-01-31 19:37   ` Matthew Wilcox
2023-01-31 21:33     ` Andreas Gruenbacher
2023-01-08 19:40 ` [Cluster-devel] [RFC v6 06/10] iomap: Add __iomap_get_folio helper Andreas Gruenbacher
2023-01-10  8:48   ` Christoph Hellwig
2023-01-08 19:40 ` [Cluster-devel] [RFC v6 07/10] iomap: Rename page_prepare handler to get_folio Andreas Gruenbacher
2023-01-08 19:40 ` [Cluster-devel] [RFC v6 08/10] iomap/xfs: Eliminate the iomap_valid handler Andreas Gruenbacher
2023-01-08 21:59   ` Dave Chinner
2023-01-09 18:45     ` Andreas Gruenbacher
2023-01-09 22:54       ` Dave Chinner
2023-01-10  1:09         ` Andreas Grünbacher
2023-01-15 17:29           ` Darrick J. Wong
2023-01-18  7:21             ` Christoph Hellwig
2023-01-18  9:11               ` Damien Le Moal
2023-01-18 19:04               ` Darrick J. Wong
2023-01-18 19:57                 ` Andreas Grünbacher
2023-01-18 21:42             ` Dave Chinner
2023-01-10  8:51     ` Christoph Hellwig
2023-01-10  8:52   ` Christoph Hellwig
2023-01-08 19:40 ` [Cluster-devel] [RFC v6 09/10] iomap: Rename page_ops to folio_ops Andreas Gruenbacher
2023-01-08 19:40 ` [Cluster-devel] [RFC v6 10/10] xfs: Make xfs_iomap_folio_ops static Andreas Gruenbacher

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y7/HrZCARD9zRvEe@infradead.org \
    --to=hch@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).