• Dave Chinner's avatar
    dax: expose __dax_fault for filesystems with locking constraints · ce5c5d55
    Dave Chinner authored
    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: default avatarDave Chinner <dchinner@redhat.com>
    Reviewed-by: default avatarJan Kara <jack@suse.cz>
    Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
    ce5c5d55
dax.c 16.1 KB