aboutsummaryrefslogtreecommitdiffstats
path: root/fs/jbd2/commit.c
diff options
context:
space:
mode:
authorVlastimil Babka <[email protected]>2016-06-03 21:55:52 +0000
committerLinus Torvalds <[email protected]>2016-06-03 23:02:56 +0000
commit83b9355bf6f449c7d1231206c300ea89d3313a9d (patch)
tree7f780a66a7476fcd2410d6932b957c9e9dd0afa0 /fs/jbd2/commit.c
parentcheckpatch: reduce git commit description style false positives (diff)
downloadkernel-83b9355bf6f449c7d1231206c300ea89d3313a9d.tar.gz
kernel-83b9355bf6f449c7d1231206c300ea89d3313a9d.zip
mm, page_alloc: prevent infinite loop in buffered_rmqueue()
In DEBUG_VM kernel, we can hit infinite loop for order == 0 in buffered_rmqueue() when check_new_pcp() returns 1, because the bad page is never removed from the pcp list. Fix this by removing the page before retrying. Also we don't need to check if page is non-NULL, because we simply grab it from the list which was just tested for being non-empty. Fixes: 479f854a207c ("mm, page_alloc: defer debugging checks of pages allocated from the PCP") Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Vlastimil Babka <[email protected]> Signed-off-by: Mel Gorman <[email protected]> Reported-by: Naoya Horiguchi <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'fs/jbd2/commit.c')
0 files changed, 0 insertions, 0 deletions