summary refs log tree commit diff
path: root/fs
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-11-13 17:35:48 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2015-11-13 17:35:48 -0800
commit2870f6c4d136e093e22159b8916918ff42c92218 (patch)
treef822a4fa9f72a901a40eda4a12dc0055ff8f6266 /fs
parent934f98d7e8123892bd9ca8ea08728ee0784e6597 (diff)
parent152d7bd80dca5ce77ec2d7313149a2ab990e808e (diff)
downloadlinux-2870f6c4d136e093e22159b8916918ff42c92218.tar.gz
Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
Pull libnvdimm fixes from Dan Williams:

 - three fixes tagged for -stable including a crash fix, simple
   performance tweak, and an invalid i/o error.

 - build regression fix for the nvdimm unit tests

 - nvdimm documentation update

* 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
  dax: fix __dax_pmd_fault crash
  libnvdimm: documentation clarifications
  libnvdimm, pmem: fix size trim in pmem_direct_access()
  libnvdimm, e820: fix numa node for e820-type-12 pmem ranges
  tools/testing/nvdimm, acpica: fix flag rename build breakage
Diffstat (limited to 'fs')
-rw-r--r--fs/dax.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/dax.c b/fs/dax.c
index 8e17b371aeb8..d1e5cb7311a1 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -629,6 +629,13 @@ int __dax_pmd_fault(struct vm_area_struct *vma, unsigned long address,
 		if ((length < PMD_SIZE) || (pfn & PG_PMD_COLOUR))
 			goto fallback;
 
+		/*
+		 * TODO: teach vmf_insert_pfn_pmd() to support
+		 * 'pte_special' for pmds
+		 */
+		if (pfn_valid(pfn))
+			goto fallback;
+
 		if (buffer_unwritten(&bh) || buffer_new(&bh)) {
 			int i;
 			for (i = 0; i < PTRS_PER_PMD; i++)