]> www.infradead.org Git - users/jedix/linux-maple.git/commit
dax: expose __dax_fault for filesystems with locking constraints
authorDave Chinner <dchinner@redhat.com>
Wed, 3 Jun 2015 23:18:18 +0000 (09:18 +1000)
committerDan Duval <dan.duval@oracle.com>
Wed, 12 Oct 2016 13:47:29 +0000 (09:47 -0400)
commit041ad8664f9456bc02a0a224f6897d730b072269
treeffadf7420325d1cf284efb84ad2d0170fcba57ee
parent9d8ec9d2ccd91d2a3a436b797e25761673bbfe9f
dax: expose __dax_fault for filesystems with locking constraints

Orabug: 22913653

Some filesystems cannot call dax_fault() directly because they have
different locking and/or allocation constraints in the page fault IO
path. To handle this, we need to follow the same model as the
generic block_page_mkwrite code, where the internals are exposed via
__block_page_mkwrite() so that filesystems can wrap the correct
locking and operations around the outside.

This is loosely based on a patch originally from Matthew Willcox.
Unlike the original patch, it does not change ext4 code, error
returns or unwritten extent conversion handling.  It also adds a
__dax_mkwrite() wrapper for .page_mkwrite implementations to do the
right thing, too.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Dave Chinner <david@fromorbit.com>
(cherry picked from commit ce5c5d554dc47a4fb4360c84b72231fea081e7a0)
Signed-off-by: Dan Duval <dan.duval@oracle.com>
fs/dax.c
include/linux/fs.h