lkml.org 
[lkml]   [2017]   [Sep]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 6/7] mm, fs: introduce file_operations->post_mmap()
    On Mon, Sep 25, 2017 at 05:14:03PM -0600, Ross Zwisler wrote:
    > When mappings are created the vma->vm_flags that they use vary based on
    > whether the inode being mapped is using DAX or not. This setup happens in
    > XFS via mmap_region()=>call_mmap()=>xfs_file_mmap().
    >
    > For us to be able to safely use the DAX per-inode flag we need to prevent
    > S_DAX transitions when any mappings are present, and we will do that by
    > looking at the address_space->i_mmap tree and returning -EBUSY if any
    > mappings are present.
    >
    > Unfortunately at the time that the filesystem's file_operations->mmap()
    > entry point is called the mapping has not yet been added to the
    > address_space->i_mmap tree. This means that at that point in time we
    > cannot determine whether or not the mapping will be set up to support DAX.
    >
    > Fix this by adding a new file_operations entry called post_mmap() which is
    > called after the mapping has been added to the address_space->i_mmap tree.
    > This post_mmap() op now happens at a time when we can be sure whether the
    > mapping will use DAX or not, and we can set up the vma->vm_flags
    > appropriately.

    Just like in the read/write path we'll need a flag that is passed down
    from the VM based on checking IS_DAX once and exactly once instead.

    \
     
     \ /
      Last update: 2017-09-26 08:35    [W:4.085 / U:0.228 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site