Re: [PATCH] gfs2: Fix error pointer dereference

Matthew Wilcox <[email protected]>
Newsgroups dev.linux.lists.gfs2,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Wed, Feb 18, 2026 at 02:06:45PM -0600, Ethan Tidmore wrote:
> The function __filemap_get_folio() can return an error pointer and is
> not checked for one. Add check for error pointer.

Can you explain how __filemap_get_folio() would fail, given the
presence of __GFP_NOFAIL in the GFP flags?

> Detected by Smatch:
> fs/gfs2/meta_io.c:147 gfs2_getbuf() error:
> 'folio' dereferencing possible ERR_PTR()
> 
> Fixes: 0eb751791df86 ("gfs2: convert gfs2_getbuf() to folios")
> Signed-off-by: Ethan Tidmore <[email protected]>
> ---
>  fs/gfs2/meta_io.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/fs/gfs2/meta_io.c b/fs/gfs2/meta_io.c
> index 3c8e4553102d..9c0ba4c3cb29 100644
> --- a/fs/gfs2/meta_io.c
> +++ b/fs/gfs2/meta_io.c
> @@ -144,6 +144,8 @@ struct buffer_head *gfs2_getbuf(struct gfs2_glock *gl, u64 blkno, int create)
>  		folio = __filemap_get_folio(mapping, index,
>  				FGP_LOCK | FGP_ACCESSED | FGP_CREAT,
>  				mapping_gfp_mask(mapping) | __GFP_NOFAIL);
> +		if (IS_ERR(folio))
> +			return NULL;
>  		bh = folio_buffers(folio);
>  		if (!bh)
>  			bh = create_empty_buffers(folio,
> -- 
> 2.53.0
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.