• Yigal Korman's avatar
    mm, dax: fix DAX deadlocks (COW fault) · 0df9d41a
    Yigal Korman authored
    DAX handling of COW faults has wrong locking sequence:
    	dax_fault does i_mmap_lock_read
    	do_cow_fault does i_mmap_unlock_write
    Ross's commit[1] missed a fix[2] that Kirill added to Matthew's
    Original COW locking logic was introduced by Matthew here[4].
    This should be applied to v4.3 as well.
    [1] 0f90cc66 mm, dax: fix DAX deadlocks
    [2] 52a2b53f mm, dax: use i_mmap_unlock_write() in do_cow_fault()
    [3] 84317297 dax: fix race between simultaneous faults
    [4] 2e4cdab0 mm: allow page fault handlers to perform the COW
    Cc: <stable@vger.kernel.org>
    Cc: Boaz Harrosh <boaz@plexistor.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Dave Chinner <dchinner@redhat.com>
    Cc: Jan Kara <jack@suse.com>
    Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
    Cc: Matthew Wilcox <matthew.r.wilcox@intel.com>
    Acked-by: default avatarRoss Zwisler <ross.zwisler@linux.intel.com>
    Signed-off-by: default avatarYigal Korman <yigal@plexistor.com>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
memory.c 105 KB