Re: return an ERR_PTR from __filemap_get_folio v2

Andrew Morton
2023-01-22T01:06:47Z

On Sat, 21 Jan 2023 07:57:48 +0100 Christoph Hellwig <hch@lst.de> wrote:

> Hi all,
>
> __filemap_get_folio and its wrappers can return NULL for three different
> conditions, which in some cases requires the caller to reverse engineer
> the decision making. This is fixed by returning an ERR_PTR instead of
> NULL and thus transporting the reason for the failure. But to make
> that work we first need to ensure that no xa_value special case is
> returned and thus return the FGP_ENTRY flag. It turns out that flag
> is barely used and can usually be deal with in a better way.
>
> Note that the shmem patches in here are non-trivial and need some
> careful review and testing.

I'll hide for a while, awaiting that review. Plus...

> Changes since v1:
> - drop the patches to check for errors in btrfs and gfs2
> - document the new calling conventions for the wrappers around
> __filemap_get_folio
> - rebased against the iomap changes in latest linux-next

This patchset doesn't apply to fs/btrfs/ because linux-next contains
this 6+ month-old commit:

commit 964688b32d9ada55a7fce2e650d85ef24188f73f
Author: Matthew Wilcox (Oracle) <willy@infradead.org>
AuthorDate: Tue May 17 18:03:27 2022 -0400
Commit: Matthew Wilcox (Oracle) <willy@infradead.org>
CommitDate: Wed Jun 29 08:51:07 2022 -0400

btrfs: Use a folio in wait_dev_supers()

Matthew, what's the story here?