Skip to content
  • Dave Chinner's avatar
    xfs: fix incorrect b_offset initialisation · ead360c5
    Dave Chinner authored
    
    
    Because we no longer use the page cache for buffering, there is no
    direct block number to page offset relationship anymore.
    xfs_buf_get_pages is still setting up b_offset as if there was some
    relationship, and that is leading to incorrectly setting up
    *uncached* buffers that don't overwrite b_offset once they've had
    pages allocated.
    
    For cached buffers, the first block of the buffer is always at offset
    zero into the allocated memory. This is true for sub-page sized
    buffers, as well as for multiple-page buffers.
    
    For uncached buffers, b_offset is only non-zero when we are
    associating specific memory to the buffers, and that is set
    correctly by the code setting up the buffer.
    
    Hence remove the setting of b_offset in xfs_buf_get_pages, because
    it is now always the wrong thing to do.
    
    Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarMark Tinguely <tinguely@sgi.com>
    Signed-off-by: default avatarBen Myers <bpm@sgi.com>
    ead360c5