2024-05-22 20:37:25

by Trond Myklebust

[permalink] [raw]
Subject: [PATCH] filemap: Return the error in do_read_cache_page()

From: Trond Myklebust <[email protected]>

If the call to do_read_cache_folio() returns an error, then we should
pass that back to the caller of do_read_cache_page().

Fixes: 539a3322f208 ("filemap: Add read_cache_folio and read_mapping_folio")
Signed-off-by: Trond Myklebust <[email protected]>
---
mm/filemap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/filemap.c b/mm/filemap.c
index 30de18c4fd28..8f3b3604f73b 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -3812,7 +3812,7 @@ static struct page *do_read_cache_page(struct address_space *mapping,

folio = do_read_cache_folio(mapping, index, filler, file, gfp);
if (IS_ERR(folio))
- return &folio->page;
+ return ERR_CAST(folio);
return folio_file_page(folio, index);
}

--
2.45.1



2024-05-22 20:41:24

by Matthew Wilcox

[permalink] [raw]
Subject: Re: [PATCH] filemap: Return the error in do_read_cache_page()

On Wed, May 22, 2024 at 04:31:14PM -0400, [email protected] wrote:
> From: Trond Myklebust <[email protected]>
>
> If the call to do_read_cache_folio() returns an error, then we should
> pass that back to the caller of do_read_cache_page().

this patch is a no-op. it generates exactly the same code.
only now it doesn't have the '&folio->page' signature that lets everyone
know it's part of the compat code.

> Fixes: 539a3322f208 ("filemap: Add read_cache_folio and read_mapping_folio")
> Signed-off-by: Trond Myklebust <[email protected]>
> ---
> mm/filemap.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/filemap.c b/mm/filemap.c
> index 30de18c4fd28..8f3b3604f73b 100644
> --- a/mm/filemap.c
> +++ b/mm/filemap.c
> @@ -3812,7 +3812,7 @@ static struct page *do_read_cache_page(struct address_space *mapping,
>
> folio = do_read_cache_folio(mapping, index, filler, file, gfp);
> if (IS_ERR(folio))
> - return &folio->page;
> + return ERR_CAST(folio);
> return folio_file_page(folio, index);
> }
>
> --
> 2.45.1
>