[XFS] Fixed a few bugs in xfs_buf_associate_memory()
authorLachlan McIlroy <lachlan@sgi.com>
Tue, 27 Nov 2007 06:01:24 +0000 (17:01 +1100)
committerLachlan McIlroy <lachlan@redback.melbourne.sgi.com>
Mon, 10 Dec 2007 02:46:20 +0000 (13:46 +1100)
commitd1afb678ce77b930334a8a640a05b8e68178a377
tree155f925fa5fca75e445e10611b3fbe12cfad09f4
parentcd57e594adc624dd9ee4c0ded3949da21ec24b2f
[XFS] Fixed a few bugs in xfs_buf_associate_memory()

- 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: Lachlan McIlroy <lachlan@sgi.com>
Signed-off-by: Christoph Hellwig <hch@infradead.org>
fs/xfs/linux-2.6/xfs_buf.c