dax: Use radix tree entry lock to protect cow faults
authorJan Kara <jack@suse.cz>
Thu, 12 May 2016 16:29:19 +0000 (18:29 +0200)
committerRoss Zwisler <ross.zwisler@linux.intel.com>
Thu, 19 May 2016 21:27:49 +0000 (15:27 -0600)
commitbc2466e4257369d0ebee2b6265070d323343fa72
treedc3c050e1b7bde8f0c93b1eb0764750f10331fed
parentac401cc782429cc8560ce4840b1405d603740917
dax: Use radix tree entry lock to protect cow faults

When doing cow faults, we cannot directly fill in PTE as we do for other
faults as we rely on generic code to do proper accounting of the cowed page.
We also have no page to lock to protect against races with truncate as
other faults have and we need the protection to extend until the moment
generic code inserts cowed page into PTE thus at that point we have no
protection of fs-specific i_mmap_sem. So far we relied on using
i_mmap_lock for the protection however that is completely special to cow
faults. To make fault locking more uniform use DAX entry lock instead.

Reviewed-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
fs/dax.c
include/linux/dax.h
include/linux/mm.h
mm/memory.c