]> git.baikalelectronics.ru Git - kernel.git/commit
ext4: return to starting transaction in ext4_dax_huge_fault()
authorJan Kara <jack@suse.cz>
Fri, 12 May 2017 22:46:54 +0000 (15:46 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 12 May 2017 22:57:16 +0000 (15:57 -0700)
commit24bddfe410d2dc1ad3ff64650337ca9e7b8efd56
tree900f3fb406c1c78f42d8d036c89de2a8fc452993
parent7fc30155bc0f14139b53f42178ee2af06ce738bc
ext4: return to starting transaction in ext4_dax_huge_fault()

DAX will return to locking exceptional entry before mapping blocks for a
page fault to fix possible races with concurrent writes.  To avoid lock
inversion between exceptional entry lock and transaction start, start
the transaction already in ext4_dax_huge_fault().

Fixes: 724fa8d602970d4e05b4c04731e1b5812eecc65c
Link: http://lkml.kernel.org/r/20170510085419.27601-4-jack@suse.cz
Signed-off-by: Jan Kara <jack@suse.cz>
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/ext4/file.c