mm: remove zone_lru_lock() function, access ->lru_lock directly
authorAndrey Ryabinin <aryabinin@virtuozzo.com>
Tue, 5 Mar 2019 23:49:39 +0000 (15:49 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 6 Mar 2019 05:07:21 +0000 (21:07 -0800)
commitf4b7e272b5c0425915e2115068e0a5a20a3a628e
tree7b5894a4cc657a7606aa183187392b7eae7e22bc
parenta7ca12f9d905e7437dd3beb9cbb8e85bc2b991f4
mm: remove zone_lru_lock() function, access ->lru_lock directly

We have common pattern to access lru_lock from a page pointer:
zone_lru_lock(page_zone(page))

Which is silly, because it unfolds to this:
&NODE_DATA(page_to_nid(page))->node_zones[page_zonenum(page)]->zone_pgdat->lru_lock
while we can simply do
&NODE_DATA(page_to_nid(page))->lru_lock

Remove zone_lru_lock() function, since it's only complicate things.  Use
'page_pgdat(page)->lru_lock' pattern instead.

[aryabinin@virtuozzo.com: a slightly better version of __split_huge_page()]
Link: http://lkml.kernel.org/r/20190301121651.7741-1-aryabinin@virtuozzo.com
Link: http://lkml.kernel.org/r/20190228083329.31892-2-aryabinin@virtuozzo.com
Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Mel Gorman <mgorman@techsingularity.net>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Rik van Riel <riel@surriel.com>
Cc: William Kucharski <william.kucharski@oracle.com>
Cc: John Hubbard <jhubbard@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 files changed:
Documentation/cgroup-v1/memcg_test.txt
Documentation/cgroup-v1/memory.txt
include/linux/mm_types.h
include/linux/mmzone.h
mm/compaction.c
mm/filemap.c
mm/huge_memory.c
mm/memcontrol.c
mm/mlock.c
mm/page_idle.c
mm/rmap.c
mm/swap.c
mm/vmscan.c