mm, compaction: cover all compaction mode in compact_zone
The compiler is complaining after "mm, compaction: change COMPACT_ constants into enum" mm/compaction.c: In function `compact_zone': mm/compaction.c:1350:2: warning: enumeration value `COMPACT_DEFERRED' not handled in switch [-Wswitch] switch (ret) { ^ mm/compaction.c:1350:2: warning: enumeration value `COMPACT_COMPLETE' not handled in switch [-Wswitch] mm/compaction.c:1350:2: warning: enumeration value `COMPACT_NO_SUITABLE_PAGE' not handled in switch [-Wswitch] mm/compaction.c:1350:2: warning: enumeration value `COMPACT_NOT_SUITABLE_ZONE' not handled in switch [-Wswitch] mm/compaction.c:1350:2: warning: enumeration value `COMPACT_CONTENDED' not handled in switch [-Wswitch] compaction_suitable is allowed to return only COMPACT_PARTIAL, COMPACT_SKIPPED and COMPACT_CONTINUE so other cases are simply impossible. Put a VM_BUG_ON to catch an impossible return value. Signed-off-by: Michal Hocko <mhocko@suse.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> Acked-by: Hillf Danton <hillf.zj@alibaba-inc.com> Cc: David Rientjes <rientjes@google.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Joonsoo Kim <js1304@gmail.com> Cc: Mel Gorman <mgorman@techsingularity.net> Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Cc: Vladimir Davydov <vdavydov@virtuozzo.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
ea7ab982b6
commit
c46649deae
@ -1383,15 +1383,12 @@ static enum compact_result compact_zone(struct zone *zone, struct compact_contro
|
||||
|
||||
ret = compaction_suitable(zone, cc->order, cc->alloc_flags,
|
||||
cc->classzone_idx);
|
||||
switch (ret) {
|
||||
case COMPACT_PARTIAL:
|
||||
case COMPACT_SKIPPED:
|
||||
/* Compaction is likely to fail */
|
||||
if (ret == COMPACT_PARTIAL || ret == COMPACT_SKIPPED)
|
||||
return ret;
|
||||
case COMPACT_CONTINUE:
|
||||
/* Fall through to compaction */
|
||||
;
|
||||
}
|
||||
|
||||
/* huh, compaction_suitable is returning something unexpected */
|
||||
VM_BUG_ON(ret != COMPACT_CONTINUE);
|
||||
|
||||
/*
|
||||
* Clear pageblock skip if there were failures recently and compaction
|
||||
|
Loading…
Reference in New Issue
Block a user