--- x/mm/filemap.c
+++ y/mm/filemap.c
@@ -3781,6 +3781,8 @@ static struct folio *do_read_cache_folio
 
 	if (!filler)
 		filler = mapping->a_ops->read_folio;
+	if (!filler)
+		return ERR_PTR(-EINVAL);
 repeat:
 	folio = filemap_get_folio(mapping, index);
 	if (IS_ERR(folio)) {