• Christoph Hellwig's avatar
    xfs: don't use ioends for direct write completions · 273dda76
    Christoph Hellwig authored
    We only need to communicate two bits of information to the direct I/O
    completion handler:
    
     (1) do we need to convert any unwritten extents in the range
     (2) do we need to check if we need to update the inode size based
         on the range passed to the completion handler
    
    We can use the private data passed to the get_block handler and the
    completion handler as a simple bitmask to communicate this information
    instead of the current complicated infrastructure reusing the ioends
    from the buffer I/O path, and thus avoiding a memory allocation and
    a context switch for any non-trivial direct write.  As a nice side
    effect we also decouple the direct I/O path implementation from that
    of the buffered I/O path.
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
    
    273dda76
xfs_trace.h 67.3 KB