diff options
author | Hugh Dickins <[email protected]> | 2018-11-30 14:10:21 -0800 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2018-11-30 14:56:15 -0800 |
commit | 006d3ff27e884f80bd7d306b041afc415f63598f (patch) | |
tree | 058bb39aff1cb27bb3fbc6ccdf61c95d6c415f05 /tools/perf/scripts/python/bin/export-to-postgresql-report | |
parent | 173d9d9fd3ddae84c110fea8aedf1f26af6be9ec (diff) |
mm/huge_memory: fix lockdep complaint on 32-bit i_size_read()
Huge tmpfs testing, on 32-bit kernel with lockdep enabled, showed that
__split_huge_page() was using i_size_read() while holding the irq-safe
lru_lock and page tree lock, but the 32-bit i_size_read() uses an
irq-unsafe seqlock which should not be nested inside them.
Instead, read the i_size earlier in split_huge_page_to_list(), and pass
the end offset down to __split_huge_page(): all while holding head page
lock, which is enough to prevent truncation of that extent before the
page tree lock has been taken.
Link: http://lkml.kernel.org/r/[email protected]
Fixes: baa355fd33142 ("thp: file pages support for split_huge_page()")
Signed-off-by: Hugh Dickins <[email protected]>
Acked-by: Kirill A. Shutemov <[email protected]>
Cc: Jerome Glisse <[email protected]>
Cc: Konstantin Khlebnikov <[email protected]>
Cc: Matthew Wilcox <[email protected]>
Cc: <[email protected]> [4.8+]
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/bin/export-to-postgresql-report')
0 files changed, 0 insertions, 0 deletions