OSDN Git Service

filemap: Handle error return from __filemap_get_folio()
authorMatthew Wilcox <willy@infradead.org>
Sat, 6 May 2023 16:04:14 +0000 (17:04 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 6 May 2023 17:08:59 +0000 (10:08 -0700)
Smatch reports that filemap_fault() was missed in the conversion of
__filemap_get_folio() error returns from NULL to ERR_PTR.

Fixes: 66dabbb65d67 ("mm: return an ERR_PTR from __filemap_get_folio")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Reported-by: syzbot+48011b86c8ea329af1b9@syzkaller.appspotmail.com
Reported-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/filemap.c

index a34abfe..b4c9bd3 100644 (file)
@@ -3378,7 +3378,7 @@ out_retry:
         * re-find the vma and come back and find our hopefully still populated
         * page.
         */
-       if (folio)
+       if (!IS_ERR(folio))
                folio_put(folio);
        if (mapping_locked)
                filemap_invalidate_unlock_shared(mapping);