Files
linux/fs
Matthew Wilcox 0e40de0338 dax: Fix huge page faults
Using xas_load() with a PMD-sized xa_state would work if either a
PMD-sized entry was present or a PTE sized entry was present in the
first 64 entries (of the 512 PTEs in a PMD on x86).  If there was no
PTE in the first 64 entries, grab_mapping_entry() would believe there
were no entries present, allocate a PMD-sized entry and overwrite the
PTE in the page cache.

Use xas_find_conflict() instead which turns out to simplify
both get_unlocked_entry() and grab_mapping_entry().  Also remove a
WARN_ON_ONCE from grab_mapping_entry() as it will have already triggered
in get_unlocked_entry().

Fixes: cfc93c6c6c ("dax: Convert dax_insert_pfn_mkwrite to XArray")
Signed-off-by: Matthew Wilcox <willy@infradead.org>
2018-11-17 12:07:53 -05:00
..
2018-09-04 11:35:03 +08:00
2018-08-21 23:54:17 -04:00
2018-08-17 16:20:28 -07:00
2018-09-29 22:47:48 -04:00
2018-10-26 16:26:33 -07:00
2018-05-22 14:27:52 -04:00
2018-11-05 14:57:05 -05:00
2018-10-12 22:46:50 -04:00
2018-10-31 08:54:15 -07:00
2018-05-22 14:27:52 -04:00
2018-10-23 13:49:02 +02:00
2018-09-07 10:32:23 +02:00
2018-07-03 16:44:45 -04:00
2018-10-24 00:40:44 +01:00
2018-06-05 19:23:26 +02:00
2018-11-17 12:07:53 -05:00
2018-10-31 08:54:16 -07:00
2018-10-24 00:40:44 +01:00
2018-10-21 10:46:42 -04:00
2018-10-31 08:54:16 -07:00
2018-06-11 08:22:34 -07:00
2018-10-31 08:54:16 -07:00
2018-02-15 15:34:42 -05:00
2018-09-03 15:14:01 +02:00