Skip to content

Commit 31d4cd4

Browse files
marktinguelyakpm00
authored andcommitted
ocfs2: fix panic in failed foilio allocation
commit 7e119cf ("ocfs2: convert w_pages to w_folios") and commit 9a5e086 ("ocfs2: use an array of folios instead of an array of pages") save -ENOMEM in the folio array upon allocation failure and call the folio array free code. The folio array free code expects either valid folio pointers or NULL. Finding the -ENOMEM will result in a panic. Fix by NULLing the error folio entry. Link: https://lkml.kernel.org/r/c879a52b-835c-4fa0-902b-8b2e9196dcbd@oracle.com Fixes: 7e119cf ("ocfs2: convert w_pages to w_folios") Fixes: 9a5e086 ("ocfs2: use an array of folios instead of an array of pages") Signed-off-by: Mark Tinguely <mark.tinguely@oracle.com> Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org> Cc: Changwei Ge <gechangwei@live.cn> Cc: Joel Becker <jlbec@evilplan.org> Cc: Junxiao Bi <junxiao.bi@oracle.com> Cc: Mark Fasheh <mark@fasheh.com> Cc: Nathan Chancellor <nathan@kernel.org> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
1 parent be6e843 commit 31d4cd4

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

fs/ocfs2/alloc.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6918,6 +6918,7 @@ static int ocfs2_grab_folios(struct inode *inode, loff_t start, loff_t end,
69186918
if (IS_ERR(folios[numfolios])) {
69196919
ret = PTR_ERR(folios[numfolios]);
69206920
mlog_errno(ret);
6921+
folios[numfolios] = NULL;
69216922
goto out;
69226923
}
69236924

0 commit comments

Comments
 (0)