diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-10-26 13:26:04 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-10-26 13:26:04 +0300 |
commit | 485fc4b69cd28f295947535175c147b943b0b2e4 (patch) | |
tree | 21730b59caa57d5e011bb981571b24c423eec83f /fs | |
parent | 1c4e395cf7ded47f33084865cbe2357cdbe4fd07 (diff) | |
parent | 6370740e5f8ef12de7f9a9bf48a0393d202cd827 (diff) | |
download | linux-485fc4b69cd28f295947535175c147b943b0b2e4.tar.xz |
Merge tag 'dax-fix-5.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
Pull dax fix from Dan Williams:
"Fix a performance regression that followed from a fix to the
conversion of the fsdax implementation to the xarray. v5.3 users
report that they stop seeing huge page mappings on an application +
filesystem layout that was seeing huge pages previously on v5.2"
* tag 'dax-fix-5.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
fs/dax: Fix pmd vs pte conflict detection
Diffstat (limited to 'fs')
-rw-r--r-- | fs/dax.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -220,10 +220,11 @@ static void *get_unlocked_entry(struct xa_state *xas, unsigned int order) for (;;) { entry = xas_find_conflict(xas); + if (!entry || WARN_ON_ONCE(!xa_is_value(entry))) + return entry; if (dax_entry_order(entry) < order) return XA_RETRY_ENTRY; - if (!entry || WARN_ON_ONCE(!xa_is_value(entry)) || - !dax_is_locked(entry)) + if (!dax_is_locked(entry)) return entry; wq = dax_entry_waitqueue(xas, entry, &ewait.key); |