mm: take i_mmap_lock in unmap_mapping_range() for DAX
authorKirill A. Shutemov <kirill.shutemov@linux.intel.com>
Tue, 8 Sep 2015 21:59:42 +0000 (14:59 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 8 Sep 2015 22:35:28 +0000 (15:35 -0700)
commit46c043ede4711e8d598b9d63c5616c1fedb0605e
tree8a559930980f59ef24c25b73b91899106f8f0418
parent3fdd1b479dbc03347e98f904f54133a9cef5521f
mm: take i_mmap_lock in unmap_mapping_range() for DAX

DAX is not so special: we need i_mmap_lock to protect mapping->i_mmap.

__dax_pmd_fault() uses unmap_mapping_range() shoot out zero page from
all mappings.  We need to drop i_mmap_lock there to avoid lock deadlock.

Re-aquiring the lock should be fine since we check i_size after the
point.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Matthew Wilcox <willy@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/dax.c
mm/memory.c