Message ID | 20230503154526.1223095-2-hch@lst.de (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/2] filemap: fix the conditional folio_put in filemap_fault | expand |
On Wed 03-05-23 17:45:26, Christoph Hellwig wrote: > Keep returning NULL on failure instead of letting an ERR_PTR escape to > callers that don't expect it. > > Fixes: 66dabbb65d67 ("mm: return an ERR_PTR from __filemap_get_folio") > Reported-by: Jan Kara <jack@suse.cz> > Signed-off-by: Christoph Hellwig <hch@lst.de> Looks good to me. Feel free to add: Reviewed-by: Jan Kara <jack@suse.cz> Honza > --- > fs/afs/dir_edit.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/fs/afs/dir_edit.c b/fs/afs/dir_edit.c > index f0eddccbdd9541..e2fa577b66fe0a 100644 > --- a/fs/afs/dir_edit.c > +++ b/fs/afs/dir_edit.c > @@ -115,11 +115,12 @@ static struct folio *afs_dir_get_folio(struct afs_vnode *vnode, pgoff_t index) > folio = __filemap_get_folio(mapping, index, > FGP_LOCK | FGP_ACCESSED | FGP_CREAT, > mapping->gfp_mask); > - if (IS_ERR(folio)) > + if (IS_ERR(folio)) { > clear_bit(AFS_VNODE_DIR_VALID, &vnode->flags); > - else if (folio && !folio_test_private(folio)) > + return NULL; > + } > + if (!folio_test_private(folio)) > folio_attach_private(folio, (void *)1); > - > return folio; > } > > -- > 2.39.2 >
Christoph Hellwig <hch@lst.de> wrote: > Keep returning NULL on failure instead of letting an ERR_PTR escape to > callers that don't expect it. > > Fixes: 66dabbb65d67 ("mm: return an ERR_PTR from __filemap_get_folio") > Reported-by: Jan Kara <jack@suse.cz> > Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: David Howells <dhowells@redhat.com> Tested-by: David Howells <dhowells@redhat.com>
diff --git a/fs/afs/dir_edit.c b/fs/afs/dir_edit.c index f0eddccbdd9541..e2fa577b66fe0a 100644 --- a/fs/afs/dir_edit.c +++ b/fs/afs/dir_edit.c @@ -115,11 +115,12 @@ static struct folio *afs_dir_get_folio(struct afs_vnode *vnode, pgoff_t index) folio = __filemap_get_folio(mapping, index, FGP_LOCK | FGP_ACCESSED | FGP_CREAT, mapping->gfp_mask); - if (IS_ERR(folio)) + if (IS_ERR(folio)) { clear_bit(AFS_VNODE_DIR_VALID, &vnode->flags); - else if (folio && !folio_test_private(folio)) + return NULL; + } + if (!folio_test_private(folio)) folio_attach_private(folio, (void *)1); - return folio; }
Keep returning NULL on failure instead of letting an ERR_PTR escape to callers that don't expect it. Fixes: 66dabbb65d67 ("mm: return an ERR_PTR from __filemap_get_folio") Reported-by: Jan Kara <jack@suse.cz> Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/afs/dir_edit.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)