• Lachlan McIlroy's avatar
    [XFS] Fixed a few bugs in xfs_buf_associate_memory() · d1afb678
    Lachlan McIlroy authored
    - calculation of 'page_count' was incorrect as it did not
      consider the offset of 'mem' into the first page. The
      logic to bump 'page_count' didn't work if 'len' was <=
      PAGE_CACHE_SIZE (ie offset = 3k, len = 2k).
    - setting b_buffer_length to 'len' is incorrect if 'offset'
      is > 0. Set it to the total length of the buffer.
    - I suspect that passing a non-aligned address into
      mem_to_page() for the first page may have been causing
      issues - don't know but just tidy up that code anyway.
    
    SGI-PV: 971596
    SGI-Modid: xfs-linux-melb:xfs-kern:30143a
    Signed-off-by: default avatarLachlan McIlroy <lachlan@sgi.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@infradead.org>
    d1afb678
xfs_buf.c 41.9 KB