• L
    mempolicy: fix is_valid_nodemask() · d3eb1570
    Lai Jiangshan 提交于
    is_valid_nodemask() was introduced by commit 19770b32 ("mm: filter
    based on a nodemask as well as a gfp_mask").  but it does not match its
    comments, because it does not check the zone which > policy_zone.
    
    Also in commit b377fd39 ("Apply memory policies to top two highest
    zones when highest zone is ZONE_MOVABLE"), this commits told us, if
    highest zone is ZONE_MOVABLE, we should also apply memory policies to
    it.  so ZONE_MOVABLE should be valid zone for policies.
    is_valid_nodemask() need to be changed to match it.
    
    Fix: check all zones, even its zoneid > policy_zone.  Use
    nodes_intersects() instead open code to check it.
    Reported-by: NWen Congyang <wency@cn.fujitsu.com>
    Signed-off-by: NLai Jiangshan <laijs@cn.fujitsu.com>
    Signed-off-by: NTang Chen <tangchen@cn.fujitsu.com>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: Lee Schermerhorn <lee.schermerhorn@hp.com>
    Cc: Jiang Liu <jiang.liu@huawei.com>
    Cc: Jianguo Wu <wujianguo@huawei.com>
    Cc: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
    Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    d3eb1570
mempolicy.c 71.4 KB