This code calls folio_put() on an error pointer which will lead to a crash. Check for both error pointers and NULL pointers before calling folio_put(). Fixes: 38a55db9877c ("filemap: Handle error return from __filemap_get_folio()") Signed-off-by: Ma Ke <make24@xxxxxxxxxxx> --- mm/filemap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/filemap.c b/mm/filemap.c index 657bcd887fdb..cd26617d8987 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -3420,7 +3420,7 @@ vm_fault_t filemap_fault(struct vm_fault *vmf) * re-find the vma and come back and find our hopefully still populated * page. */ - if (!IS_ERR(folio)) + if (!IS_ERR_OR_NULL(folio)) folio_put(folio); if (mapping_locked) filemap_invalidate_unlock_shared(mapping); -- 2.25.1