]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.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)
committerDave Chinner <david@fromorbit.com>
Wed, 3 Jun 2015 23:18:18 +0000 (09:18 +1000)
commitce5c5d554dc47a4fb4360c84b72231fea081e7a0
tree93915bd75b2061c36dfbffd10a8efd22e0d7282b
parente842f2903908934187af7232fb5b21da527d1757
dax: expose __dax_fault for filesystems with locking constraints

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>
fs/dax.c
include/linux/fs.h