mm: compaction: move fatal signal check out of compact_checklock_irqsave
authorMel Gorman <[email protected]>
Mon, 8 Oct 2012 23:32:30 +0000 (16:32 -0700)
committerLinus Torvalds <[email protected]>
Tue, 9 Oct 2012 07:22:48 +0000 (16:22 +0900)
commit3cc668f4e30fbd97b3c0574d8cac7a83903c9bc7
tree851c570e1af7c3c888d7106d3942ab861039b3b9
parente64c5237cf6ff474cb2f3f832f48f2b441dd9979
mm: compaction: move fatal signal check out of compact_checklock_irqsave

Commit c67fe3752abe ("mm: compaction: Abort async compaction if locks
are contended or taking too long") addressed a lock contention problem
in compaction by introducing compact_checklock_irqsave() that effecively
aborting async compaction in the event of compaction.

To preserve existing behaviour it also moved a fatal_signal_pending()
check into compact_checklock_irqsave() but that is very misleading.  It
"hides" the check within a locking function but has nothing to do with
locking as such.  It just happens to work in a desirable fashion.

This patch moves the fatal_signal_pending() check to
isolate_migratepages_range() where it belongs.  Arguably the same check
should also happen when isolating pages for freeing but it's overkill.

Signed-off-by: Mel Gorman <[email protected]>
Cc: Rik van Riel <[email protected]>
Cc: KAMEZAWA Hiroyuki <[email protected]>
Cc: Shaohua Li <[email protected]>
Cc: Minchan Kim <[email protected]>
Cc: Andrea Arcangeli <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/compaction.c