• Andreas Gruenbacher's avatar
    gfs2: Disable page faults during lockless buffered reads · 52f3f033
    Andreas Gruenbacher authored
    During lockless buffered reads, filemap_read() holds page cache page
    references while trying to copy data to the user-space buffer.  The
    calling process isn't holding the inode glock, but the page references
    it holds prevent those pages from being removed from the page cache, and
    that prevents the underlying inode glock from being moved to another
    node.  Thus, we can end up in the same kinds of distributed deadlock
    situations as with normal (non-lockless) buffered reads.
    
    Fix that by disabling page faults during lockless reads as well.
    Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
    52f3f033
file.c 40 KB